summaryrefslogtreecommitdiff
path: root/sound/soc/codecs
diff options
context:
space:
mode:
authorLaxminath Kasam <lkasam@codeaurora.org>2017-03-18 12:37:30 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2017-03-22 00:37:24 -0700
commit9fab026308f10443d7a3b734e1a85f8a3b1d609b (patch)
treea0a3162d468cb905d01f6335c58be39df9b89a5d /sound/soc/codecs
parentc1ef16be6d3c5606edb7a23398611d010b405aa8 (diff)
ASoC: msm_sdw: Fix random mute on speaker when device switch
Observe random mute on speaker during device switch on secondary images. Avoid reading previous register read when SWR slave read and overwrite of previous register when SWR slave write, by adjusting delays in respective APIs. Change-Id: I302968ad8e774598c8414e05ba669f90bf39b82c Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Diffstat (limited to 'sound/soc/codecs')
-rw-r--r--sound/soc/codecs/msm_sdw/msm_sdw_cdc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sound/soc/codecs/msm_sdw/msm_sdw_cdc.c b/sound/soc/codecs/msm_sdw/msm_sdw_cdc.c
index 1d1dd0f61f28..0a2fd3d6c123 100644
--- a/sound/soc/codecs/msm_sdw/msm_sdw_cdc.c
+++ b/sound/soc/codecs/msm_sdw/msm_sdw_cdc.c
@@ -1044,7 +1044,7 @@ static int msm_sdw_swrm_read(void *handle, int reg)
* Add sleep as SWR slave access read takes time.
* Allow for RD_DONE to complete for previous register if any.
*/
- usleep_range(50, 55);
+ usleep_range(100, 105);
/* read_lock */
mutex_lock(&msm_sdw->sdw_read_lock);
@@ -1079,6 +1079,11 @@ static int msm_sdw_bulk_write(struct msm_sdw_priv *msm_sdw,
sdw_wr_addr_base = MSM_SDW_AHB_BRIDGE_WR_ADDR_0;
sdw_wr_data_base = MSM_SDW_AHB_BRIDGE_WR_DATA_0;
+ /*
+ * Add sleep as SWR slave write takes time.
+ * Allow for any previous pending write to complete.
+ */
+ usleep_range(50, 55);
for (i = 0; i < len; i += 2) {
/* First Write the Data to register */
ret = regmap_bulk_write(msm_sdw->regmap,