ASoC: arizona: Don't change the FLLn_GAIN before entering FREERUN
authorNariman Poushin <nariman@opensource.wolfsonmicro.com>
Tue, 30 Aug 2016 09:30:40 +0000 (10:30 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 30 Aug 2016 16:54:48 +0000 (17:54 +0100)
When reclocking an active FLL, to ensure a clean transition, do
not change the gain setting until we have entered free run.

Signed-off-by: Nariman Poushin <nariman@opensource.wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/arizona.c

index ecfdbfc..0fc3b4b 100644 (file)
@@ -2218,11 +2218,11 @@ static int arizona_enable_fll(struct arizona_fll *fll)
 
        if (already_enabled) {
                /* Facilitate smooth refclk across the transition */
-               regmap_update_bits_async(fll->arizona->regmap, fll->base + 0x9,
-                                        ARIZONA_FLL1_GAIN_MASK, 0);
                regmap_update_bits(fll->arizona->regmap, fll->base + 1,
                                   ARIZONA_FLL1_FREERUN, ARIZONA_FLL1_FREERUN);
                udelay(32);
+               regmap_update_bits_async(fll->arizona->regmap, fll->base + 0x9,
+                                        ARIZONA_FLL1_GAIN_MASK, 0);
        }
 
        /*