ASoC: wcd9310: Disable Mic Bias Pull down prior to enable micbias

Pull down Mic Bias and add a delay of 250ms to avoid issue
of something else pulling up the mic voltage other than mbhc
polling prior to enable micbias when recording starts.

(cherry picked from commit 1b9a309c9a58bfd47d0e6dee75cfd6fea12e0760)

Change-Id: I79002b1a3ffa8df82e45da87622efc1a1ae037b7
CRs-fixed: 431573
Signed-off-by: Simmi Pateriya <simmip@codeaurora.org>
Merge "ASoC: wcd9310: Disable Mic Bias Pull down prior to enable micbias"
msm: iommu: Synchronize access to IOMMU cfg port

Add remote spinlock that allows CPU and GPU to
synchronize access to IOMMU hardware.

Add usage of remote spinlock to iommu driver and
add depenency on SFPB hardware mutex being enabled.`

This feature is not using SFPB hardware mutex. However,
SFPB hardware mutex must be enabled since the remote
spinlock implementation is making use of shared memory
that is normally used when SFPB hardware mutex is not enabled.

Change-Id: I47770f8575871a65c18f7665cd4a6536fb3dde3d
Signed-off-by: Srivalli Oguri <oguri@codeaurora.org>
msm: Kconfig: Enable IOMMU CPU-GPU synchronization

Enable synchronization between CPU and GPU for
IOMMU configuration register accesses.

Change-Id: I77e5e64f7392a62d28b5f447c1e2cc6a75f41fc4
Signed-off-by: Srivalli Oguri <oguri@codeaurora.org>
msm: kgsl: Synchronize access to IOMMU cfg port

Add a software based spinlock between CPU and GPU.
This spinlock is used to grant mutually exclusive access to
SMMU configuration between CPU and GPU. This mutual exclusion
is required to prevent deadlock in the system.

CRs-Fixed: 409198
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>

Change-Id: I6757b025e1cea29628b423723a186c4ba70395b5
Signed-off-by: Srivalli Oguri <oguri@codeaurora.org>
msm: kgsl: Idle GPU core before programming SMMU from CPU

Always idle the GPU core before programming SMMU from CPU for
SMMU-v1. GPU core was already being idled before programming
the pagetable register, make sure that it's also idle before
programming the tlb invalidate registers. This is required to
prevent a deadlock from happening at the bus level.

Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>

Change-Id: I55d2b1294e5b0f97e1c94b316ef9af83f12e6cb7
Signed-off-by: Srivalli Oguri <oguri@codeaurora.org>
Merge "msm: iommu: Synchronize access to IOMMU cfg port"
Merge "msm: Kconfig: Enable IOMMU CPU-GPU synchronization"
Merge "msm: kgsl: Synchronize access to IOMMU cfg port"
Merge "msm: kgsl: Idle GPU core before programming SMMU from CPU"
usb: gadget: Register RMNET SMD control channel only on protocol connect

The RMNET USB function driver uses SMD channel for transmitting control
messages to the modem processor. Move the registration of the platform
driver which handle the SMD channel to the stage in which the RMNET
function driver is actually got activated by the host which selected
the configuration which contain the RMNET function driver.

This fix is required to prevent cases in which other protocols, as
MBIM for example, which exists in other USB configuration, may need
the same SMD channel which is occupied by the RMNET, since the RMNET
grab the channel on initialization of the function driver rather than
upon activating it.

(cherry picked from commit b84439b31b9fc9ffdad46a4add8dd451aa2c7e0d)

Change-Id: Ie02bb25c56633e6cfafcc058fc17477ab4f2354c
CRs-Fixed: 435979
Signed-off-by: Ido Shayevitz <idos@codeaurora.org>
Merge "usb: gadget: Register RMNET SMD control channel only on protocol connect"