ASoC: Fix hx4700 error handling to free gpios if snd_soc_register_card fails
[linux-3.10.git] / 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)