This patch fixes the 'tuck' phenomena observed on the headset output after the streams are stopped and DAPM send the codec to standby mode.
Signed-off-by: Peter Ujfalusi peter.ujfalusi@nokia.com --- sound/soc/codecs/twl4030.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c index fd392c6..06042a1 100644 --- a/sound/soc/codecs/twl4030.c +++ b/sound/soc/codecs/twl4030.c @@ -599,7 +599,7 @@ static int headsetl_event(struct snd_soc_dapm_widget *w, /* Is this needed? Can we just use whatever gain here? */ twl4030_write(w->codec, TWL4030_REG_HS_GAIN_SET, (hs_gain & (~0x0f)) | 0x0a); - hs_pop |= TWL4030_RAMP_EN; + hs_pop &= ~TWL4030_VMID_EN; twl4030_write(w->codec, TWL4030_REG_HS_POPN_SET, hs_pop);
/* Restore the original volume */ @@ -613,7 +613,7 @@ static int headsetl_event(struct snd_soc_dapm_widget *w, twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, hs_gain & (~0x0f), TWL4030_REG_HS_GAIN_SET); - hs_pop &= ~TWL4030_VMID_EN; + hs_pop |= TWL4030_RAMP_EN; twl4030_write(w->codec, TWL4030_REG_HS_POPN_SET, hs_pop); break; }