ASoC: Fix hx4700 error handling to free gpios if snd_soc_register_card fails
authorAxel Lin <axel.lin@gmail.com>
Mon, 12 Dec 2011 03:26:00 +0000 (11:26 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 12 Dec 2011 04:58:42 +0000 (12:58 +0800)
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/pxa/hx4700.c

index 65c124831a0063f0b645062a13559348e5af367a..c664e33fb6d732c239e00d115df663a1b4b5908f 100644 (file)
@@ -209,9 +209,10 @@ static int __devinit hx4700_audio_probe(struct platform_device *pdev)
        snd_soc_card_hx4700.dev = &pdev->dev;
        ret = snd_soc_register_card(&snd_soc_card_hx4700);
        if (ret)
-               return ret;
+               gpio_free_array(hx4700_audio_gpios,
+                               ARRAY_SIZE(hx4700_audio_gpios));
 
-       return 0;
+       return ret;
 }
 
 static int __devexit hx4700_audio_remove(struct platform_device *pdev)