diff options
-rwxr-xr-x | sound/soc/codecs/wcd9335.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sound/soc/codecs/wcd9335.c b/sound/soc/codecs/wcd9335.c index d8787ed249db..439a474ce183 100755 --- a/sound/soc/codecs/wcd9335.c +++ b/sound/soc/codecs/wcd9335.c @@ -5719,9 +5719,20 @@ static int tasha_codec_enable_dec(struct snd_soc_dapm_widget *w, msecs_to_jiffies(300)); break; case SND_SOC_DAPM_PRE_PMD: + hpf_cut_off_freq = + tasha->tx_hpf_work[decimator].hpf_cut_off_freq; snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x10, 0x10); snd_soc_update_bits(codec, dec_cfg_reg, 0x08, 0x00); - cancel_delayed_work_sync(&tasha->tx_hpf_work[decimator].dwork); + if (cancel_delayed_work_sync( + &tasha->tx_hpf_work[decimator].dwork)) { + if (hpf_cut_off_freq != CF_MIN_3DB_150HZ) { + tasha_codec_vote_max_bw(codec, true); + snd_soc_update_bits(codec, dec_cfg_reg, + TX_HPF_CUT_OFF_FREQ_MASK, + hpf_cut_off_freq << 5); + tasha_codec_vote_max_bw(codec, false); + } + } cancel_delayed_work_sync( &tasha->tx_mute_dwork[decimator].dwork); break; |