ASoC: tlv320aic3x: Add delay after power on and register sync
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Fri, 23 Dec 2016 09:21:11 +0000 (11:21 +0200)
committerMark Brown <broonie@kernel.org>
Sat, 31 Dec 2016 18:43:46 +0000 (18:43 +0000)
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>
sound/soc/codecs/tlv320aic3x.c

index bb94d50..29bf8c8 100644 (file)
@@ -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