wcd9xxx: core: Fix crash while headset insert and remove

When insert and remove headset continuously observe crash.
In the interrupt table for wcd9306, there is a interrupt
number of WCD9XXX_IRQ_RESERVED_2 (value 32).
In IRQ driver, irqs will be dispatched  based on this
interrupt table. But for WCD9XXX_IRQ_RESERVED_2, this
value being 32 and BIT_BYTE will be 4 whereas number
of interrupt registers are 0 to 3 only.
Here status array used to check interrupt set, access each
entry of interrupt table and see if bit mask is set.
so, when checking for WCD9XXX_IRQ_RESERVED_2 it will
access out of bound array status[4] which will return
unexpected value.
In failed case, status[4] matches bitmask for 32nd bit
and dispatches irq for invalid entry causing crash.
Remove the entry as it is not a valid entry and causing
out of bound access for wcd9306 and wcd9320.

Change-Id: I82ed3b47a3bd7cee7a3c90a4fba4981a0528702f
CRs-Fixed: 729475
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
power: bq27541: Convert wakelocks to wakeup sources

Change-Id: I1a66a7494aebe87ee2ebc1fd72066a130c0e9caf
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
cpu-boost: if the user is underclocking choose the minimum clock from input_boost_freq and policy->max for extra power savings if the underclocked freq is < input_boost_freq

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
misc: Update from Oppo release svn9954

Change-Id: Idc1a30e63ee548197bddf6886856e9a02bdfee39
camera_oppo: Upstream update svn9954

 * Add sensor state procfs

Change-Id: I2c14e38002e50e495d5c30db86e767cdb6071066
(cherry picked from commit c28b96ecb0e58591bd9adb82e7d118e5bbff8824)

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
bacon: Use old naming for LG panel

 * Bootloader is still sending the old name, revert the DT change for
   now to fix display detection on this hardware.

Change-Id: I850de726de2b96615ecb2763ec80b085a9102352
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
input: touchscreen: Update TP firmware to 14001220

Change-Id: If3e5cc74cb019fd4d1123db9cabba4e2e011e0c2
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
msm: vidc: Send resolution along with output buffer

Send the resolution along with output buffer to the client
to avoid a race condition where resolution might be changed
multiple times in driver before client requests for updated
resolution.

Change-Id: I8ebb99e3baa04da09f153195a674babcebcfea78
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
ASoC: wcd9xxx: Notify mbhc when TX1/IN1 path is enabled

Notification is sent to mbhc whenever TX1/IN1 path is used
for audio capture. MBHC then will switch to VDDIO if headset
is inserted. This is to avoid polling noise that gets captured
in the recorded audio due to noise coupling in hardware b/w
TX2 and TX1 paths.

Change-Id: Iac40f41572d1417d2afdc55438d86c047710824f
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
ASoC: wcd9xxx: modify sequence post SSR

Perform mux configuration before MBHC init.
Otherwise, MLCK will not be enabled which results
in wrong initial calibration of dce and sta.
Updating the mux configuration for class h dsm mux
during codec bring up after ssr is causing the
widget not to be powered up as the dapm sees no
change in the register associated with it. The change
ensures the mux register is not updated post SSR.

Change-Id: I4d181de29816d51b0a70b82bd057256844d34387
Signed-off-by: Aravind Kumar <akumark@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
ASoC: wcd9320: Fix DAPM timeout when accesing MAD calibration (FIX)

request_firmware called by MAD configuration requires
user space daemon to locate MAD codec calibration data.
When system is in suspend state either due to sleep or
user space daemon not ready or filesystem is down then
it needs be up briefly before accesing the codec
calibration data. This change fixes the accesing the
codec calibration data by codec when in suspend state.

Crs-Fixed: 609223
Change-Id: Id2d87363276619c9bd841ee335dc92c58bcc27c0
Signed-off-by: Venkat Sudhir <vsudhir@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
slimbus: Cleanup dev_list when device is removed

Remove a device's list-entry from controller's
device-list when that device is removed.

Signed-off-by: Naveen Kaje <nkaje@codeaurora.org>
Change-Id: I068bf34b6692dad33332f4b9baf49e768f5b2736
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
slim_msm: Handle ADSP SSR gracefully for apps-owned data channels

Usually the data channels are owned by codec, or by ADSP itself. If
apps itself is involved in data-transfer on the channels, make sure
the BAM pipes, or the port-registers in question are not accessed
while ADSP is restarting.

Change-Id: I9476c7389dbf89d902f0ef6572f3f755f0575f7b
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
ngd_slim: Ignore pm_runtime_get error when runtime-pm is not enabled

Controller power-up uses different code-path when runtime-pm is not
enabled.

Change-Id: Ibe2f119fd8f43edb657f8f623879dea4730811f4
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
slim_msm: support non-blocking writes from slimbus MSM controller

Provide non-blocking write support so that clients can queue multiple
writes, or larger transfers without performance implications.
TX buffer is created and descriptors out of this buffer
are submitted to HW to transmit data.
Descriptor is returned to 'available' pool of TX buffer when HW
interrupt for transmission status is recieved.

Change-Id: Icc2af6bf4f770c8cadb9bd2ef7be0f95eb22c5d8
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
msm: kgsl: Wake up GPU only for touch events

Register the KGSL input event handler only for
touch input events to make sure input event handler
is called only for touch input events.

Change-Id: I68938fbbf870bd3bce83cb057b504674753d6de8
Signed-off-by: Ananta Kishore K <akollipa@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
synaptics_dsx: Fix manual fw updates

Clear the update-related memory structures after the automated
update run from boot, so that manual updates don't trip on incompatible
data

Change-Id: Ie7e637b65f93af0fb2ffecc97e48f253a04056ca
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
input: touchscreen: Update TP firmware to 14001221

Change-Id: I75e1d932a5f3df7055420a07449fa1219d0036c5
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
mako_hotplug: fix a rare case where the restored frequency wouldn't be the same as when the device wen't to sleep.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
prima: Revert last updates:

Revert "prima: Reapply fixes after upgrade to 3.2.2.2"

This reverts commit fb6056a47fce9c9ecaaacfc0757eae5d44013c60.

Revert "prima: Update to 3.2.2.1_rb1 release"

This reverts commit a93dd771c39f5602da1ed9826a0a2b3ea8adc50d.

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>