OSDN Git Service

ASoC: Fix masking of WM8962 FLL1 register
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 28 Sep 2010 00:20:11 +0000 (17:20 -0700)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 28 Sep 2010 21:10:18 +0000 (14:10 -0700)
When configuring the FLL we preserve the FLL enable configuration in order
to allow us to reenable the FLL after configuration but we do not clear
the other bits in the register, causing old configuration to be preserved.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/codecs/wm8962.c

index 7de5194..12286d6 100644 (file)
@@ -1342,7 +1342,7 @@ static int wm8962_set_fll(struct snd_soc_dai *dai, int fll_id, int source,
        struct wm8962_priv *wm8962 = snd_soc_codec_get_drvdata(codec);
        struct _fll_div fll_div;
        int ret;
-       int fll1 = snd_soc_read(codec, WM8962_FLL_CONTROL_1);
+       int fll1 = snd_soc_read(codec, WM8962_FLL_CONTROL_1) & WM8962_FLL_ENA;
 
        /* Any change? */
        if (source == wm8962->fll_src && Fref == wm8962->fll_fref &&