summaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2016-12-23 11:21:11 +0200
committerMark Brown <broonie@kernel.org>2016-12-31 18:43:46 +0000
commit03303da5243f394f5cc5e530a8bc9f26ad2c79cb (patch)
tree925eb4dafce2760b11bd99c6a99dcfe650b5d1ee /sound/soc
parent63c3194b82530bd71fd49db84eb7ab656b8d404a (diff)
downloadlinux-stable-03303da5243f394f5cc5e530a8bc9f26ad2c79cb.tar.gz
linux-stable-03303da5243f394f5cc5e530a8bc9f26ad2c79cb.tar.bz2
linux-stable-03303da5243f394f5cc5e530a8bc9f26ad2c79cb.zip
ASoC: tlv320aic3x: Add delay after power on and register sync
When the codec is powered on, it's registers are in reset state as the power off will do a soft reset of the codec. After the register sync we need to add delay to remove the pop-noise on stream start. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/codecs/tlv320aic3x.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
index bb94d50052d7..29bf8c81ae02 100644
--- a/sound/soc/codecs/tlv320aic3x.c
+++ b/sound/soc/codecs/tlv320aic3x.c
@@ -1393,6 +1393,12 @@ static int aic3x_set_power(struct snd_soc_codec *codec, int power)
snd_soc_write(codec, AIC3X_PLL_PROGC_REG, pll_c);
snd_soc_write(codec, AIC3X_PLL_PROGD_REG, pll_d);
}
+
+ /*
+ * Delay is needed to reduce pop-noise after syncing back the
+ * registers
+ */
+ mdelay(50);
} else {
/*
* Do soft reset to this codec instance in order to clear