diff options
| -rw-r--r-- | sound/soc/codecs/msm_sdw/msm_sdw_cdc.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sound/soc/codecs/msm_sdw/msm_sdw_cdc.c b/sound/soc/codecs/msm_sdw/msm_sdw_cdc.c index 850238764d87..f4a8fe7778fd 100644 --- a/sound/soc/codecs/msm_sdw/msm_sdw_cdc.c +++ b/sound/soc/codecs/msm_sdw/msm_sdw_cdc.c @@ -1036,6 +1036,13 @@ static int msm_sdw_swrm_read(void *handle, int reg) __func__, reg); sdw_rd_addr_base = MSM_SDW_AHB_BRIDGE_RD_ADDR_0; sdw_rd_data_base = MSM_SDW_AHB_BRIDGE_RD_DATA_0; + + /* + * Add sleep as SWR slave access read takes time. + * Allow for RD_DONE to complete for previous register if any. + */ + usleep_range(50, 55); + /* read_lock */ mutex_lock(&msm_sdw->sdw_read_lock); ret = regmap_bulk_write(msm_sdw->regmap, sdw_rd_addr_base, |
