ASoC: WCD9304: Add 15ms delay during slimbus port shutdown
It is found that audio playback on wcd9304 CODEC is very
unstable after moving to shared data channel architecture.
Audio playback is muted due to continous overflow error from
SLIMBUS RX port. Adding 15ms delay between port disconnect and
deactivation of data channel to stablize audio playback.
Change-Id: Ie3d1b51c3f3e4d9f950d143f5dc37d15a51be058
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
diff --git a/sound/soc/codecs/wcd9304.c b/sound/soc/codecs/wcd9304.c
index 65fe16d..c9c8e25 100644
--- a/sound/soc/codecs/wcd9304.c
+++ b/sound/soc/codecs/wcd9304.c
@@ -2283,6 +2283,10 @@
wcd9xxx_close_slim_sch_rx(sitar,
sitar_p->dai[j].ch_num,
sitar_p->dai[j].ch_tot);
+ /* Wait for remove channel to complete
+ * before derouting Rx path
+ */
+ usleep_range(15000, 15000);
sitar_p->dai[j].rate = 0;
memset(sitar_p->dai[j].ch_num, 0, (sizeof(u32)*
sitar_p->dai[j].ch_tot));