ASoC: Fix return value of wm8580_set_sysclk()
authorAxel Lin <axel.lin@gmail.com>
Fri, 30 Dec 2011 15:36:23 +0000 (23:36 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 2 Jan 2012 13:08:40 +0000 (13:08 +0000)
We can't just pass back the return value of snd_soc_update_bits() as it
will be 1 if a bit changed rather than zero.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/wm8580.c

index b1c8d3de08b25c5506cd47e6bc89773c91b8b15e..211285164d70eb1ddf6dc4f86e084a124e136729 100644 (file)
@@ -670,7 +670,7 @@ static int wm8580_set_sysclk(struct snd_soc_dai *dai, int clk_id,
 {
        struct snd_soc_codec *codec = dai->codec;
        struct wm8580_priv *wm8580 = snd_soc_codec_get_drvdata(codec);
-       int sel, sel_mask, sel_shift;
+       int ret, sel, sel_mask, sel_shift;
 
        switch (dai->driver->id) {
        case WM8580_DAI_PAIFRX:
@@ -711,7 +711,11 @@ static int wm8580_set_sysclk(struct snd_soc_dai *dai, int clk_id,
        /* We really should validate PLL settings but not yet */
        wm8580->sysclk[dai->driver->id] = freq;
 
-       return snd_soc_update_bits(codec, WM8580_CLKSEL, sel_mask, sel);
+       ret = snd_soc_update_bits(codec, WM8580_CLKSEL, sel_mask, sel);
+       if (ret < 0)
+               return ret;
+
+       return 0;
 }
 
 static int wm8580_digital_mute(struct snd_soc_dai *codec_dai, int mute)