diff options
| author | Phani Kumar Uppalapati <phaniu@codeaurora.org> | 2015-12-01 14:10:45 -0800 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 21:14:58 -0700 |
| commit | 5c2bb64a1c9a4672c183c2d9caaf778e41b2ca59 (patch) | |
| tree | 734c52feaedb936d33105bc4ad80f59df30bd956 | |
| parent | d2c515c35846140b156094d6821b3217b1fe8b88 (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-x | sound/soc/codecs/wcd9335.c | 10 |
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; |
