ASoC: tegra20-ac97: add missing clk_disable_unprepare() on error path
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>
Sat, 14 Dec 2013 05:29:11 +0000 (13:29 +0800)
committerMark Brown <broonie@linaro.org>
Mon, 16 Dec 2013 18:37:27 +0000 (18:37 +0000)
Add the missing clk_disable_unprepare() before return from
tegra20_ac97_platform_probe() in the error handling case.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/tegra/tegra20_ac97.c

index ae27bcd..088518d 100644 (file)
@@ -404,7 +404,7 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
        ret = snd_soc_set_ac97_ops(&tegra20_ac97_ops);
        if (ret) {
                dev_err(&pdev->dev, "Failed to set AC'97 ops: %d\n", ret);
-               goto err_asoc_utils_fini;
+               goto err_clk_disable_unprepare;
        }
 
        ret = snd_soc_register_component(&pdev->dev, &tegra20_ac97_component,
@@ -412,7 +412,7 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
        if (ret) {
                dev_err(&pdev->dev, "Could not register DAI: %d\n", ret);
                ret = -ENOMEM;
-               goto err_asoc_utils_fini;
+               goto err_clk_disable_unprepare;
        }
 
        ret = tegra_pcm_platform_register(&pdev->dev);
@@ -428,6 +428,8 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
 
 err_unregister_component:
        snd_soc_unregister_component(&pdev->dev);
+err_clk_disable_unprepare:
+       clk_disable_unprepare(ac97->clk_ac97);
 err_asoc_utils_fini:
        tegra_asoc_utils_fini(&ac97->util_data);
 err_clk_put: