summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-10-26 01:10:39 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-10-26 01:10:39 -0700
commit3319e8c1d7997643a9f5ca4a89934b75bbd16d49 (patch)
tree0290b9aaddb6fc4367d6cbdb56bf85d9cafb2fd8
parent49cc9d17a4d7f15f62c79cba6bfc9ae6448f1e35 (diff)
parentece0ce10f6417fe53a7438ac98eec1d41771255b (diff)
Merge "ASoC: wcd934X: Update TX gain correctly after decimator enable"
-rw-r--r--sound/soc/codecs/wcd934x/wcd934x.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/soc/codecs/wcd934x/wcd934x.c b/sound/soc/codecs/wcd934x/wcd934x.c
index b8dcd264b5d2..2f117159402e 100644
--- a/sound/soc/codecs/wcd934x/wcd934x.c
+++ b/sound/soc/codecs/wcd934x/wcd934x.c
@@ -3667,6 +3667,7 @@ static int tavil_codec_enable_dec(struct snd_soc_dapm_widget *w,
char *wname;
int ret = 0, amic_n;
u16 tx_vol_ctl_reg, pwr_level_reg = 0, dec_cfg_reg, hpf_gate_reg;
+ u16 tx_gain_ctl_reg;
char *dec;
u8 hpf_cut_off_freq;
@@ -3708,6 +3709,7 @@ static int tavil_codec_enable_dec(struct snd_soc_dapm_widget *w,
tx_vol_ctl_reg = WCD934X_CDC_TX0_TX_PATH_CTL + 16 * decimator;
hpf_gate_reg = WCD934X_CDC_TX0_TX_PATH_SEC2 + 16 * decimator;
dec_cfg_reg = WCD934X_CDC_TX0_TX_PATH_CFG0 + 16 * decimator;
+ tx_gain_ctl_reg = WCD934X_CDC_TX0_TX_VOL_CTL + 16 * decimator;
switch (event) {
case SND_SOC_DAPM_PRE_PMU:
@@ -3768,7 +3770,9 @@ static int tavil_codec_enable_dec(struct snd_soc_dapm_widget *w,
schedule_delayed_work(
&tavil->tx_hpf_work[decimator].dwork,
msecs_to_jiffies(300));
-
+ /* apply gain after decimator is enabled */
+ snd_soc_write(codec, tx_gain_ctl_reg,
+ snd_soc_read(codec, tx_gain_ctl_reg));
break;
case SND_SOC_DAPM_PRE_PMD:
hpf_cut_off_freq =