summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorWei Yongjun <weiyj.lk@gmail.com>2016-08-23 15:16:42 +0000
committerMark Brown <broonie@kernel.org>2016-08-24 12:38:02 +0100
commitfd61576fdda88c9677f9ea62e6f32997ce39daea (patch)
tree05b4facbc43082143f03ed875824f466c7cbb6b7 /sound
parent45ef4969d68f1837649ff3d8cdc5b804fa66df42 (diff)
downloadlinux-stable-fd61576fdda88c9677f9ea62e6f32997ce39daea.tar.gz
linux-stable-fd61576fdda88c9677f9ea62e6f32997ce39daea.tar.bz2
linux-stable-fd61576fdda88c9677f9ea62e6f32997ce39daea.zip
ASoC: samsung: i2s: Add missing clk_disable_unprepare() on error in samsung_i2s_probe()
Add the missing clk_disable_unprepare() before return from samsung_i2s_probe() in the error handling case. Signed-off-by: Wei Yongjun <weiyj.lk@gmail.com> Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/samsung/i2s.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c
index fa3ff03d97d5..7e32cf4581f8 100644
--- a/sound/soc/samsung/i2s.c
+++ b/sound/soc/samsung/i2s.c
@@ -1318,7 +1318,8 @@ static int samsung_i2s_probe(struct platform_device *pdev)
sec_dai = i2s_alloc_dai(pdev, true);
if (!sec_dai) {
dev_err(&pdev->dev, "Unable to alloc I2S_sec\n");
- return -ENOMEM;
+ ret = -ENOMEM;
+ goto err_disable_clk;
}
sec_dai->lock = &pri_dai->spinlock;
@@ -1342,7 +1343,8 @@ static int samsung_i2s_probe(struct platform_device *pdev)
if (i2s_pdata && i2s_pdata->cfg_gpio && i2s_pdata->cfg_gpio(pdev)) {
dev_err(&pdev->dev, "Unable to configure gpio\n");
- return -EINVAL;
+ ret = -EINVAL;
+ goto err_disable_clk;
}
ret = devm_snd_soc_register_component(&pri_dai->pdev->dev,
@@ -1366,6 +1368,8 @@ static int samsung_i2s_probe(struct platform_device *pdev)
err_free_dai:
if (sec_dai)
i2s_free_sec_dai(sec_dai);
+err_disable_clk:
+ clk_disable_unprepare(pri_dai->clk);
return ret;
}