diff options
author | Laxminath Kasam <lkasam@codeaurora.org> | 2017-03-18 12:37:30 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-03-22 00:37:24 -0700 |
commit | 9fab026308f10443d7a3b734e1a85f8a3b1d609b (patch) | |
tree | a0a3162d468cb905d01f6335c58be39df9b89a5d /sound/soc/codecs | |
parent | c1ef16be6d3c5606edb7a23398611d010b405aa8 (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.c | 7 |
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, |