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)) {
                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",