ASoC: arizona: Calculate FLL gain last
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Fri, 7 Mar 2014 16:34:23 +0000 (16:34 +0000)
committerMark Brown <broonie@linaro.org>
Sun, 9 Mar 2014 08:28:07 +0000 (08:28 +0000)
No part of the FLL calculation depends on the value determined for the
gain but the gain does depend on other values. In preparation for future
updates this patch moves the gain to be the last thing calculated.

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

index 1f106abf1bb0b76751f20b8c01aad079c0f06d60..219d1d54f536fa537f6c72cc9b8440db3d26c86f 100644 (file)
@@ -1455,18 +1455,6 @@ static int arizona_calc_fll(struct arizona_fll *fll,
                return -EINVAL;
        }
 
-       for (i = 0; i < ARRAY_SIZE(fll_gains); i++) {
-               if (fll_gains[i].min <= Fref && Fref <= fll_gains[i].max) {
-                       cfg->gain = fll_gains[i].gain;
-                       break;
-               }
-       }
-       if (i == ARRAY_SIZE(fll_gains)) {
-               arizona_fll_err(fll, "Unable to find gain for Fref=%uHz\n",
-                               Fref);
-               return -EINVAL;
-       }
-
        cfg->n = target / (ratio * Fref);
 
        if (target % (ratio * Fref)) {
@@ -1490,6 +1478,18 @@ static int arizona_calc_fll(struct arizona_fll *fll,
                cfg->lambda >>= 1;
        }
 
+       for (i = 0; i < ARRAY_SIZE(fll_gains); i++) {
+               if (fll_gains[i].min <= Fref && Fref <= fll_gains[i].max) {
+                       cfg->gain = fll_gains[i].gain;
+                       break;
+               }
+       }
+       if (i == ARRAY_SIZE(fll_gains)) {
+               arizona_fll_err(fll, "Unable to find gain for Fref=%uHz\n",
+                               Fref);
+               return -EINVAL;
+       }
+
        arizona_fll_dbg(fll, "N=%x THETA=%x LAMBDA=%x\n",
                        cfg->n, cfg->theta, cfg->lambda);
        arizona_fll_dbg(fll, "FRATIO=%x(%d) OUTDIV=%x REFCLK_DIV=%x\n",