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 7de519479801c0f828ff1963b0fb09d5d61542fc..12286d6c708dc03c8298d4f280f139f20bbc3874 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 &&