ASoC: arizona: FLL freerun only required whilst disabling
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Wed, 9 Jul 2014 16:41:48 +0000 (17:41 +0100)
committerMark Brown <broonie@linaro.org>
Thu, 10 Jul 2014 10:09:16 +0000 (12:09 +0200)
The FLL freerun is only required whilst we disable the FLL not the
entire time the FLL is disabled. This patch moves the FLL freerun
disable from the enable sequence to the disable sequence.

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

index a6f09bb..7c362cb 100644 (file)
@@ -1792,8 +1792,6 @@ static int arizona_enable_fll(struct arizona_fll *fll)
        try_wait_for_completion(&fll->ok);
 
        regmap_update_bits_async(arizona->regmap, fll->base + 1,
-                                ARIZONA_FLL1_FREERUN, 0);
-       regmap_update_bits_async(arizona->regmap, fll->base + 1,
                                 ARIZONA_FLL1_ENA, ARIZONA_FLL1_ENA);
        if (use_sync)
                regmap_update_bits_async(arizona->regmap, fll->base + 0x11,
@@ -1819,6 +1817,8 @@ static void arizona_disable_fll(struct arizona_fll *fll)
                                 ARIZONA_FLL1_ENA, 0, &change);
        regmap_update_bits(arizona->regmap, fll->base + 0x11,
                           ARIZONA_FLL1_SYNC_ENA, 0);
+       regmap_update_bits_async(arizona->regmap, fll->base + 1,
+                                ARIZONA_FLL1_FREERUN, 0);
 
        if (change)
                pm_runtime_put_autosuspend(arizona->dev);