Commit graph

568826 commits

Author SHA1 Message Date
Ravinder Konka
57483d074c net: Reset NAPI bit if IPI failed
During hotplug if an RPS CPU goes offline,
then there is a possibility that the IPI
delivery to the RPS core might fail, this
happens in the cases when unruly drivers
use netif_rx API in the wrong context.

This happens due to two reasons

a) Firstly using netif_rx API in non preemptive
context leads to enough latencies that the IPI
delivery might fail to an RPS core. This is because
the softIRQ trigger will become unpredictable.

b) by using netif_rx it  becomes an architectural
issue where we are trying to do two things in two
different contexts. We set the NAPI bit in context
and sent the IPI in other context. Now since the
context switch is allowed, the remote CPU is allowed
to go finish its hotplug.

If there was no context switch in the first place,
which typically happens by either using the correct
version of netif_rx or switching to NAPI framework,
then the remote CPU is not allowed to go to CPU DOWN
state. This is by design since hotplug framework causes
 the remote dying CPU to wait until atleast one context
switch happens on all other CPUS. If preemption is
disabled then the dying CPU has to wait until preemption
is enabled and a context switch happens.

This patch catches these unruly drivers and handles
IPI misses by clearing NAPI sate on remote RPS CPUs

Please refere here for more documentation on hotplug
and preemption cases https://lwn.net/Articles/569686/

CRs-Fixed: 966095
Change-Id: I072f91bdb4d7e444e3624e8e010ef1b66a67b1ed
Acked-by: Abhishek Chauhan <abchauha@qti.qualcomm.com>
Signed-off-by: Ravinder Konka <rkonka@codeaurora.org>
2016-03-23 21:18:59 -07:00
Ben Romberger
c0b53092e3 ASoC: msm: qdsp6v2: Correctly free ASM no wait queue
Remove improper deletion of list head and protect list
deletion with spinlock. Spinlock protects the list
from access in ADSP callback at the same time the
list is being deallocated.

Change-Id: I1b102cd99e7c80e1dfd4e2054b9ba7e0ca26d6a7
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
2016-03-23 21:18:58 -07:00
Ben Romberger
38ebaf2f95 ASoC: msm: qdsp6v2: Modify HW delay debug print
Change the HW delay debug print so it does not
seem like an error. Adds comments in the code
describing the HW delay feature.

Change-Id: I0955623a7bdb0f4180c908ba079cf6f900e496a5
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
2016-03-23 21:18:57 -07:00
Chris Lew
56f8644352 soc: qcom: glink: Add null pointer guards in glink transports
A null pointer dereference was possible because a check on
the return value from kmalloc was not in place. This change
adds a null pointer check. This change also changes an
existing null check to check the correct pointer.

CRs-Fixed: 964856
Change-Id: I899b908b84d5d3b8e39b1b30b942e9eb7ed7f7da
Signed-off-by: Chris Lew <clew@codeaurora.org>
2016-03-23 21:18:56 -07:00
Krishnankutty Kolathappilly
48830c210e msm: cpp: Ensure CPP RX fifo is empty while writing firmware
Ensure CPP RX fifo is empty while writing firmware and during
duplication command. This avoids any firmware load failures
due to possible overwrite of payload.

CRs-Fixed: 967466
Change-Id: Ie964614ac9893750e5c8ca08362e877352d6ebe2
Signed-off-by: Krishnankutty Kolathappilly <kkolatha@codeaurora.org>
2016-03-23 21:18:55 -07:00
Krishnankutty Kolathappilly
f39433fdc3 msm: cpp: Handle batch buffers on preview identity
In batch mode with duplication use case, video buffer needs to be
primary buffer and preview buffer the duplicate buffer. If preview
buffer is the primary buffer batch video output is not generated
resulting in green frames. Swap the preview and video identity if
the batch buffers are sent on preview identity and duplication is
enabled.

CRs-Fixed: 952085
Change-Id: I46f63189e784ec388969a756b8e32c1180640478
Signed-off-by: Krishnankutty Kolathappilly <kkolatha@codeaurora.org>
2016-03-23 21:18:54 -07:00
Krishnankutty Kolathappilly
dcbf3c2e38 msm: cpp: Fix green frames during batch mode for NV12 formats
The meta data offsets is not set to zero causing invalid buffers
being send out from cpp causing green frames in video during
batch mode for NV12 formats. If format is not ubwc, reset meta
data offset to zero in the set buffer group payload.

CRs-Fixed: 952085
Change-Id: I912b28d9ed7f02e5e87513d92d088adcbebe1d1b
Signed-off-by: Krishnankutty Kolathappilly <kkolatha@codeaurora.org>
2016-03-23 21:18:54 -07:00
Vidyakumar Athota
2263eb03e8 ASoC: wcd9335: fix mute issue on headphone during concurrency
Currently class-H controller is not enabled when lineout is enabled
first and then headphone is enabled.  Because of this mute is observed
on headphone during lineout and headphone concurrent scenarios.
Fix mute on headphone by enabling class H block during concurrency.

Change-Id: Ibed962eaacf87c3eb55c569d2ae9c6363a63cace
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
CRs-Fixed: 957405
2016-03-23 21:18:53 -07:00
Sunkad, Anand Ningappa
8b04e6988c wcnss: Remove dump of SAW2 registers
Remove dump of SAW2 registers in case of wcnss abort to
avoid kernel panic.

CRs-Fixed: 967730
Change-Id: I08f9ca6268575b2d6d1e266353a98714fbeeee10
Signed-off-by: Sunkad, Anand Ningappa <asunka@codeaurora.org>
2016-03-23 21:18:52 -07:00
Hemant Gupta
b968de5c63 Bluetooth: uhid: Prevent deadlock while waiting for response
This patch prevents deadlock between userspace and kernel space uhid
driver by releasing the held mutex(s) before waiting for response for
set/get report. Without this there was potential deadlock in code
that lead to unnecessary wait for 5 seconds for response for set report
to be received from user space which could not come, as mutex was held
leading to blockage of read and further write.

Change-Id: I3f003f33bdf2a0aeb4821598c667cbf61db83b9b
CRs-Fixed: 963213
Signed-off-by: Hemant Gupta <hemantg@codeaurora.org>
2016-03-23 21:18:51 -07:00
Rama Krishna Phani A
338086ed12 thermal: tsens: Update condition in critical_irq
Device crash is observed when the critical_irq is triggered because of
accessing uninitialized completion variable.

Update condition in critical_irq such that the completion variable will be
accessed only when initialized.

Change-Id: I0cba089882024bbe36ac4798866af4e33ee02fa2
Signed-off-by: Rama Krishna Phani A <rphani@codeaurora.org>
2016-03-23 21:18:50 -07:00
Deepak Katragadda
61811e0792 ARM: dts: msm: Enable the MMSS clock driver on MSMCOBALT
Enable support to model the multimedia clocks instead of
using dummy clocks. We are still using dummy clocks on
RUMI until the FSM dependencies can be met.

Change-Id: I1827188e554fab50db531091dde7ff99a366d823
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
2016-03-23 21:18:49 -07:00
Deepak Katragadda
aa0e21f9fc clk: msm: clock: Add the MMSS clock driver support for MSMCOBALT
Add support to model the multimedia clocks on MSMCOBALT.

Change-Id: Iec33fa93e745a65205cf4206759289d7e842fe36
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
2016-03-23 21:18:49 -07:00
Ajay Singh Parmar
9903b31489 ARM: msm: hdmi: correct hdmi ddc and cec pull settings
DDC and CEC GPIOs need to be configured as pull up for both
active and suspend state as the companion chip's enable gpio
controls these lines and expects pull up configurations.
Correct the same to avoid any power leakage during suspend state.

Change-Id: Ia40d3e173a8215d0db48ee846f4f45938279f58f
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2016-03-23 21:18:48 -07:00
David Collins
9352060409 ARM: dts: msm: update graphics vdd restriction level for msm8996pro
Update with the correct maximum and minimum voltage levels for
the gfx supply on MSM8996-Pro.

Change-Id: Ie6a90488124bb0c47fd09948a5c202ffa10aee27
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:18:47 -07:00
David Collins
6c33bfe426 ARM: dts: msm: update cpufreq list and devfreq mapping for msm8996pro
Update the cpufreq device with the latest frequency list for
msm8996pro.  Also update the cpufreq to devfreq device frequency
mapping accordingly.

Change-Id: Ice9a8d782ca3619ec93e02ec88a10ecd88667c36
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:18:46 -07:00
David Collins
27459b0cba ARM: dts: msm: add the GPU frequency plan for msm8996pro
Update the frequency plan for the MSM8996pro GPU clock.

Change-Id: I05228a3fc5da4cf24452ada3ee4363fe6e92e042
Signed-off-by: David Collins <collinsd@codeaurora.org>
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
2016-03-23 21:18:45 -07:00
Deepak Katragadda
fa55e31503 clk: msm: clock: Decouple PLL min frequency from being fabia specific
Currently, the min_supported_rate is only used for fabia PLLs.
This is a generic PLL property which needs to be checked for
all PLLs.

Change-Id: Iaec2ee84468bb40a68ded9355aa7587eabbe86b9
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
2016-03-23 21:18:44 -07:00
David Collins
fef7d8cbac ARM: dts: msm: add the CPU frequency plan for msm8996pro
Update the frequency plan for the MSM8996pro CPU clocks.

Change-Id: Ib395678da8be33ff30a3630837008ee911bc5616
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:18:44 -07:00
David Collins
da097bed55 ARM: dts: msm: specify VDD_GFX CPR device properties for msm8996pro
Specify the MSM8996-Pro VDD_GFX CPR configurations.  This
includes a new corner mapping for the additional GPU frequencies
found on MSM8996-Pro as well as the voltage adjustments
appropriate for all of the frequencies.

Change-Id: Ic704b0e886de2aaffa4afb044704c21b6e8d24da
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:18:43 -07:00
Jordan Crouse
bc3e27ab70 msm: kgsl: Move all platform drivers to the same module init function
There can only be one module_init() function per module.  Move all
three driver register calls into the same initialization function. The
ordering should still work correctly.

Change-Id: Ic0dedbadf7c69221a836ba3bbba362d0660f1f0f
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2016-03-23 21:18:42 -07:00
Jordan Crouse
da324cf8f6 msm: kgsl: Add and use KGSL_DEVICE macro
Add a helper macro to convert an adreno_device pointer to a
struct kgsl_device pointer.  This is mostly syntatic sugar
but it makes the code a bit cleaner and it abstracts a bit of
the ugliness away.

Change-Id: Ic0dedbadd97bda3316a58514a5a64757bd4154c7
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2016-03-23 21:18:41 -07:00
Jordan Crouse
11d4029da9 msm: kgsl: Add KGSL_RB_DEVICE macro
The ringbuffer structures are static members of struct adreno_device
which means that they are permanently associated with a specific
adreno device and by extension a struct kgsl_device too. The upshot
is that we can use macro math to derive the adreno device from
a ringbuffer pointer and get rid of the device shortcut in the
ringbuffer struct.  This also gives us a chance to clean up
how functions use the ringbuffer and adreno_device structs
to limit unnessesary dereferencing.

Change-Id: Ic0dedbad909ef71e99cd3319713cee38fb1700f0
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2016-03-23 21:18:40 -07:00
Manish Poddar
a1385afa7b msm: camera: Do stream deletion properly.
when mediaserver crashes we are getting error that
__msm_destroy_session_streams: Error: Destroyed
list is not empty.
The order of stream_id for normal camera close is
1,2,3,4,0.When mediaserver crashes stream id order
is 0,1,2,3,4.stream id 4 is coming in the last and
when pvdev->opened is 0 we are not deleting the
stream.Added stream_delete when pvdev->opened is 0.

Change-Id: I22eaa8bd485e19605b9b69e86644f68ce209e808
Signed-off-by: Manish Poddar <mpoddar@codeaurora.org>
2016-03-23 21:18:39 -07:00
Gilad Broner
e4d3720461 phy: phy-qcom-ufs: separate U11 user registers from phy registers
RUMI platform uses QRBTCv2 phy that has 2 separate sets of registers.
One is the phy register set, and the other is the U11 user registers.
Mapping both sets will require to map a larger range of memory that
is overlapping with the ICE registers address.
Separate into 2 independent memory mappings to avoid the conflict.

Change-Id: Ifdb426cdd7139e918c5c3747f5529b047f4fc1e5
Signed-off-by: Gilad Broner <gbroner@codeaurora.org>
2016-03-23 21:18:38 -07:00
Rama Krishna Phani A
ad747e5b63 hwmon: qpnp-adc-voltage: Update condition for reading temp through VADC
ADC driver prints error log whenever vadc read fails. Update the
condition such that log gets printed for error case and not for probe
deferal.

Change-Id: Ieff7f82fbe508a8422f666635a489f45f2deb41f
Signed-off-by: Rama Krishna Phani A <rphani@codeaurora.org>
2016-03-23 21:18:38 -07:00
zhaoyuan
f36bb94db7 ARM: dts: msm: defer touch resume on msm8996 DTP
Add support for deferring touch resume to a workqueue on
msm8996 DTP.

Change-Id: Ic66648a6cbb36d884f315eadaa0f4c48ced04c96
Signed-off-by: zhaoyuan <yzhao@codeaurora.org>
2016-03-23 21:18:37 -07:00
Hareesh Gundu
3662821930 msm: kgsl: Don't overwrite the VBIF XIN offset for A3xx
Currently VBIF XIN register offset is been overwritten by
the AXI offset. This will cause VBIF XIN halt time out in
VBIF clear transaction path. Fix this by using the proper
VBIF XIN offset for A3xx targets.

Change-Id: Iac20528cb105904e46e012d67287dd736fa11f70
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
2016-03-23 21:18:36 -07:00
Viraja Kommaraju
d355d220ef ASoC: qdsp6v2: Add error check for pointer and array index
Add NULL check for the pointer to make sure memory is
allocated. Add array boundary check for the index
before using the same array.

Change-Id: Ifd35ca0c0a1cbeee18d7797ea6b43ea31be0eeba
Signed-off-by: Viraja Kommaraju <virajak@codeaurora.org>
2016-03-23 21:18:35 -07:00
Viraja Kommaraju
85a1cbed68 mfd: wcd9xxx-core: Fix array size
Add change to include correct array length
for buffer.

Change-Id: I9fd89b38b795401e7b6fdf848cb34fa20814a319
Signed-off-by: Viraja Kommaraju <virajak@codeaurora.org>
2016-03-23 21:18:34 -07:00
Yan He
5479fc7f28 msm: ep_pcie: update PCIe PHY register dump
Update the PHY register dump for PCIe Endpoint mode so that more
debugging information could be acquired in case of PHY failure.

Change-Id: I6b40df668d8a5c912547af701e8a2150db47452f
Signed-off-by: Yan He <yanhe@codeaurora.org>
2016-03-23 21:18:33 -07:00
Patrick Daly
f232630e10 soc: qcom: Add debugfs interface for enabling SOC debug events
Other processors/execution environments may support debug events. Implement
an 'smc instruction' based communications protocol and hook it up to
debugfs.

Change-Id: I3a99dfdac5df7edb874bd449d9abc5a929787758
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
2016-03-23 21:18:32 -07:00
David Collins
5fda6f8960 ARM: dts: msm: specify VDD_APCC CPR device properties for msm8996pro
Specify the MSM8996-Pro VDD_APCC CPR configurations.  This
includes a new corner mapping for the additional CPU frequencies
found on MSM8996-Pro as well as the voltage adjustments
appropriate for all of the frequencies.

Change-Id: Ia09252bf10ed81812bc8511136d97ca885de21a7
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:18:32 -07:00
David Collins
bb65d3eda4 ARM: dts: msm: update APM compatible property for msm8996pro
Specify an MSM8996-Pro specific APM device compatible string
for MSM8996-Pro boards.  This allows software to avoid imposing
various constraints during APM switching which are not required
for MSM8996-Pro chips.

Change-Id: I0664374ca347c0f66d95422cc9bfa4efb1a151ee
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:18:31 -07:00
David Collins
45dbf9c951 ARM: dts: msm: disable HMSS clock source overriding for msm8996pro
HMSS cluster clock source overriding is not required during APM
switching or VDD_APCC voltage changes on MSM8996pro chips.
Therefore, disable this feature for the APM and PM8994 S11
regulator device nodes.

Change-Id: I201373867a8f07742f6bf2794fa59fc1c4c34d74
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-23 21:18:30 -07:00
Shrenuj Bansal
b6200b61fb msm: kgsl: Properly enable bit 5 in CP_INIT mask
Use bit 5 in the CP_INIT_MASK to properly enable/disable
microcode workarounds.

Change-Id: I9f43c8c988c3179b3de2cce071339bc565b4a00d
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
2016-03-23 21:18:29 -07:00
Harshdeep Dhatt
e34ca145b3 msm: kgsl: Fix the snapshot mempool size calculation
The snapshot mempool size takes into account the memory
required for section headers. It was being calculated based
on old header structure. Update that to avoid corruption/
buffer overflow of the mempool memory.

Change-Id: I07274934e4c0dced707e03be3e31b2459e00d706
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
2016-03-23 21:18:28 -07:00
Ray Zhang
b131172459 ARM: dts: msm: change hx8394f GIP setting
There is a corrupted line displayed on top of the display in
some cases. It is introduced by insufficient charging time, so
fix it by revising panel's GIP setting.

Change-Id: Ic31f4a512b38a2f5e8c8419c1b72f0706cfc5ced
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
2016-03-23 21:18:27 -07:00
Trilok Soni
7f0fe9c32e ARM: dts: msm: Add RTB support for msmcobalt
Add RTB (Register Trace Buffer) device tree entries for msmcobalt

Change-Id: I0742e7c762ffdfdf32058af58bd47646ad361725
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
2016-03-23 21:18:27 -07:00
Deven Patel
6b521fda9c drivers: mfd: use single read and write mode for i2c regmap config
i2c doesn't support bulk read and write. Enable the single read and write
option in regmap configuration for audio codec to operate correctly in
i2c mode.

Change-Id: I8d27826fe634c660c848a2a8db78f8a31ba16ed0
Signed-off-by: Deven Patel <cdevenp@codeaurora.org>
2016-03-23 21:18:26 -07:00
Sanrio Alvares
61059c4df0 ARM: dts: msm: Reuse MSM8996 includes for MSM8996pro
Reuse existing include files for MSM8996pro.

Change-Id: Iad8cab4cf28f7d71078e5206bc70ab4b16152f2d
Signed-off-by: Sanrio Alvares <salvares@codeaurora.org>
2016-03-23 21:18:25 -07:00
Derek Chen
81aa95aa8c ASoC: msm: add port mixer routing for quat_mi2s_rx
Add port mixer routing support from aux_pcm_tx to quat_mi2s_rx.

Change-Id: I6c72ab41123de4f4ab3a37bd23c37c58d689e509
Signed-off-by: Derek Chen <chenche@codeaurora.org>
2016-03-23 21:18:24 -07:00
Viraja Kommaraju
793b94b398 ASoC: Add check for pointer and array index
Add check for NULL pointer access and
array index boundary.

Change-Id: Ia12a28c43b99158a90d27eecd23bdfd4b42b346e
Signed-off-by: Viraja Kommaraju <virajak@codeaurora.org>
2016-03-23 21:18:23 -07:00
Laxminath Kasam
6494d49985 ASoC: apr: add API to read subsys state
As audio DSP can be running in lpass or modem
based on chipset, add API to get the subsys state
from apr_v2(lpass) and apr_v3(modem) accordingly.

Change-Id: I7a2b6f12574edcc5f609ce8ddf684a840f86d676
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2016-03-23 21:18:22 -07:00
Laxminath Kasam
c006b9ad3b ASoC: qdsp6v2: move AFE clock macros to header
As AFE clock version macros can be used
in other drivers, move them to header file.

Change-Id: Iae5717c181e81bf7a6161742e8d062d09bedfb78
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2016-03-23 21:18:21 -07:00
Abinaya P
94ce65be3c leds: leds-qpnp-wled: set overwrite bit for switching frequency
While configuring the switching frequency for WLED, we need to set
the overwrite bit as well so that the switching frequency change
will get reflected.

Change-Id: I3e7f67b76ac49c1d925a8e84ea1280160ee044bd
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-03-23 21:18:21 -07:00
Vidyakumar Athota
964f63a545 ASoC: wcd9335: fix pop during CLS-AB mode
Pop is observed during starting of the playback in CLS-AB mode.
Fix the pop issue by updating register sequence properly.

Change-Id: Iff17245e8a2b14354cc99150a57394ce81ec29b8
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-03-23 21:18:20 -07:00
Deepak Katragadda
870f781d2c clk: msm: clock-local2: Add support for branch clocks rate aggregation
There are cases when multiple branch clocks need to be able to
scale their RCG independently. The RCG should then be configured
to run at the maximum rate of all it's children clocks which are
enabled at that point. Add support for this.

Change-Id: I90b7a9a3007792f65e0292d375e409ce1dbf0c08
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
2016-03-23 21:18:19 -07:00
Shiraz Hashim
38a6f0388b mm/memblock: call kmemleak only for logically mapped region
On 32bit, memblock_alloc_range_nid can return block of
memory from highmem. Ensure kmemleak is called only for
logically mapped region.

Change-Id: I4491f199437d8401071ba5f98a8b0eedbaf47b00
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
2016-03-23 21:18:18 -07:00
Alex Sarraf
91742a04a3 ARM: dts: msm: Change pull bias for touchscreen I2C node
When touchscreen is in sleep state, GPIOs are still in use.
Change touchscreen I2C pull bias in sleep state to remove
current leak.

Change-Id: I0112eb6944579c6b10861f19376cf8edccd73891
Signed-off-by: Alex Sarraf <asarraf@codeaurora.org>
2016-03-23 21:18:17 -07:00