summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhani Kumar Uppalapati <phaniu@codeaurora.org>2015-12-01 14:10:45 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:14:58 -0700
commit5c2bb64a1c9a4672c183c2d9caaf778e41b2ca59 (patch)
tree734c52feaedb936d33105bc4ad80f59df30bd956
parentd2c515c35846140b156094d6821b3217b1fe8b88 (diff)
ASoC: wcd9335: Change RX disconnect port sequence
Change RX disconnect port sequence so as to avoid slimbus underflow and audio mute issues during playback. Change-Id: I0260e61b78e3bcfe422896dc60b15af84be424a4 Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
-rwxr-xr-xsound/soc/codecs/wcd9335.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sound/soc/codecs/wcd9335.c b/sound/soc/codecs/wcd9335.c
index 52ccd10e036c..1d14f38d2f86 100755
--- a/sound/soc/codecs/wcd9335.c
+++ b/sound/soc/codecs/wcd9335.c
@@ -2741,7 +2741,8 @@ static int tasha_codec_enable_slim_chmask(struct wcd9xxx_codec_dai_data *dai,
msecs_to_jiffies(
TASHA_SLIM_CLOSE_TIMEOUT));
if (!ret) {
- pr_err("%s: Slim close tx/rx wait timeout\n", __func__);
+ pr_err("%s: Slim close tx/rx wait timeout, ch_mask:0x%lx\n",
+ __func__, dai->ch_mask);
ret = -ETIMEDOUT;
} else {
ret = 0;
@@ -2785,18 +2786,21 @@ static int tasha_codec_enable_slimrx(struct snd_soc_dapm_widget *w,
&dai->grph);
break;
case SND_SOC_DAPM_POST_PMD:
+ tasha_codec_vote_max_bw(codec, true);
ret = wcd9xxx_disconnect_port(core, &dai->wcd9xxx_ch_list,
dai->grph);
dev_dbg(codec->dev, "%s: Disconnect RX port, ret = %d\n",
__func__, ret);
- ret = wcd9xxx_close_slim_sch_rx(core, &dai->wcd9xxx_ch_list,
- dai->grph);
+
if (!dai->bus_down_in_recovery)
ret = tasha_codec_enable_slim_chmask(dai, false);
else
dev_dbg(codec->dev,
"%s: bus in recovery skip enable slim_chmask",
__func__);
+ ret = wcd9xxx_close_slim_sch_rx(core, &dai->wcd9xxx_ch_list,
+ dai->grph);
+ tasha_codec_vote_max_bw(codec, false);
break;
}
return ret;