ASoC: ad1980: Return proper error if vendor id mismatch
authorAxel Lin <axel.lin@gmail.com>
Tue, 6 Sep 2011 02:37:48 +0000 (10:37 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 8 Sep 2011 22:39:51 +0000 (15:39 -0700)
Return -ENODEV instead of 0 if vendor id mismatch.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/ad1980.c

index 923b364a3e41926e88c99025c11326ab49236773..4c0fc30a4ccbadefdbf3b3ecdc3b0256014ddaae 100644 (file)
@@ -200,18 +200,22 @@ static int ad1980_soc_probe(struct snd_soc_codec *codec)
        }
 
        /* Read out vendor ID to make sure it is ad1980 */
-       if (ac97_read(codec, AC97_VENDOR_ID1) != 0x4144)
+       if (ac97_read(codec, AC97_VENDOR_ID1) != 0x4144) {
+               ret = -ENODEV;
                goto reset_err;
+       }
 
        vendor_id2 = ac97_read(codec, AC97_VENDOR_ID2);
 
        if (vendor_id2 != 0x5370) {
-               if (vendor_id2 != 0x5374)
+               if (vendor_id2 != 0x5374) {
+                       ret = -ENODEV;
                        goto reset_err;
-               else
+               } else {
                        printk(KERN_WARNING "ad1980: "
                                "Found AD1981 - only 2/2 IN/OUT Channels "
                                "supported\n");
+               }
        }
 
        /* unmute captures and playbacks volume */