ASoC: Host clock2 read up in WM8904 FLL configuration
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 18 Dec 2009 14:20:35 +0000 (14:20 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 18 Dec 2009 14:20:35 +0000 (14:20 +0000)
Avoids skipping over the read for disable cases.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/wm8904.c

index e44ee31..992a7f2 100644 (file)
@@ -1893,6 +1893,8 @@ static int wm8904_set_fll(struct snd_soc_dai *dai, int fll_id, int source,
            Fout == wm8904->fll_fout)
                return 0;
 
+       clock2 = snd_soc_read(codec, WM8904_CLOCK_RATES_2);
+
        if (Fout == 0) {
                dev_dbg(codec->dev, "FLL disabled\n");
 
@@ -1936,7 +1938,6 @@ static int wm8904_set_fll(struct snd_soc_dai *dai, int fll_id, int source,
 
        /* Save current state then disable the FLL and SYSCLK to avoid
         * misclocking */
-       clock2 = snd_soc_read(codec, WM8904_CLOCK_RATES_2);
        fll1 = snd_soc_read(codec, WM8904_FLL_CONTROL_1);
        snd_soc_update_bits(codec, WM8904_CLOCK_RATES_2,
                            WM8904_CLK_SYS_ENA, 0);