ASoC: arizona: Move set of OUTDIV in to arizona_apply_fll
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Fri, 7 Mar 2014 16:34:19 +0000 (16:34 +0000)
committerMark Brown <broonie@linaro.org>
Sun, 9 Mar 2014 08:28:06 +0000 (08:28 +0000)
Since we know in arizona_apply_fll if we are setting the sync or ref
path there is no need to set the outdiv seperately anymore. This patch
moves this from arizona_enable_fll to arizona_apply_fll.

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

index 3d4408db075f543af5cb31a054f952f517b6b7c1..9afd8c41d143924d9ef885f2791b5975a5cf67eb 100644 (file)
@@ -1502,14 +1502,18 @@ static void arizona_apply_fll(struct arizona *arizona, unsigned int base,
                                 cfg->refdiv << ARIZONA_FLL1_CLK_REF_DIV_SHIFT |
                                 source << ARIZONA_FLL1_CLK_REF_SRC_SHIFT);
 
-       if (sync)
-               regmap_update_bits_async(arizona->regmap, base + 0x7,
-                                        ARIZONA_FLL1_GAIN_MASK,
-                                        cfg->gain << ARIZONA_FLL1_GAIN_SHIFT);
-       else
-               regmap_update_bits_async(arizona->regmap, base + 0x9,
-                                        ARIZONA_FLL1_GAIN_MASK,
-                                        cfg->gain << ARIZONA_FLL1_GAIN_SHIFT);
+       if (sync) {
+               regmap_update_bits(arizona->regmap, base + 0x7,
+                                  ARIZONA_FLL1_GAIN_MASK,
+                                  cfg->gain << ARIZONA_FLL1_GAIN_SHIFT);
+       } else {
+               regmap_update_bits(arizona->regmap, base + 0x5,
+                                  ARIZONA_FLL1_OUTDIV_MASK,
+                                  cfg->outdiv << ARIZONA_FLL1_OUTDIV_SHIFT);
+               regmap_update_bits(arizona->regmap, base + 0x9,
+                                  ARIZONA_FLL1_GAIN_MASK,
+                                  cfg->gain << ARIZONA_FLL1_GAIN_SHIFT);
+       }
 
        regmap_update_bits_async(arizona->regmap, base + 2,
                                 ARIZONA_FLL1_CTRL_UPD | ARIZONA_FLL1_N_MASK,
@@ -1546,10 +1550,6 @@ static void arizona_enable_fll(struct arizona_fll *fll,
         */
        if (fll->ref_src >= 0 && fll->ref_freq &&
            fll->ref_src != fll->sync_src) {
-               regmap_update_bits_async(arizona->regmap, fll->base + 5,
-                                        ARIZONA_FLL1_OUTDIV_MASK,
-                                        ref->outdiv << ARIZONA_FLL1_OUTDIV_SHIFT);
-
                arizona_apply_fll(arizona, fll->base, ref, fll->ref_src,
                                  false);
                if (fll->sync_src >= 0) {
@@ -1558,10 +1558,6 @@ static void arizona_enable_fll(struct arizona_fll *fll,
                        use_sync = true;
                }
        } else if (fll->sync_src >= 0) {
-               regmap_update_bits_async(arizona->regmap, fll->base + 5,
-                                        ARIZONA_FLL1_OUTDIV_MASK,
-                                        sync->outdiv << ARIZONA_FLL1_OUTDIV_SHIFT);
-
                arizona_apply_fll(arizona, fll->base, sync,
                                  fll->sync_src, false);