ASoC: Fix return value of ak4641_pcm_set_dai_fmt()
authorAxel Lin <axel.lin@gmail.com>
Fri, 30 Dec 2011 15:34:54 +0000 (23:34 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 2 Jan 2012 13:08:33 +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/ak4641.c

index 266ebea..c4d165a 100644 (file)
@@ -339,6 +339,7 @@ static int ak4641_pcm_set_dai_fmt(struct snd_soc_dai *codec_dai,
 {
        struct snd_soc_codec *codec = codec_dai->codec;
        u8 btif;
+       int ret;
 
        /* interface format */
        switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
@@ -358,7 +359,11 @@ static int ak4641_pcm_set_dai_fmt(struct snd_soc_dai *codec_dai,
                return -EINVAL;
        }
 
-       return snd_soc_update_bits(codec, AK4641_BTIF, (0x3 << 5), btif);
+       ret = snd_soc_update_bits(codec, AK4641_BTIF, (0x3 << 5), btif);
+       if (ret < 0)
+               return ret;
+
+       return 0;
 }
 
 static int ak4641_i2s_set_dai_fmt(struct snd_soc_dai *codec_dai,