mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
ASoC: rockchip: i2s: Fix unbalanced hclk handle in error paths
Fix warning: rockchip_i2s_probe() warn: 'i2s->hclk' not released on lines: 719,724,731. Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com> Change-Id: Ic3aeb86a2880aae0d004030b802aec187b74b6c6
This commit is contained in:
@@ -701,24 +701,6 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
i2s->pins = of_id->data;
|
||||
}
|
||||
|
||||
/* try to prepare related clocks */
|
||||
i2s->hclk = devm_clk_get(&pdev->dev, "i2s_hclk");
|
||||
if (IS_ERR(i2s->hclk)) {
|
||||
dev_err(&pdev->dev, "Can't retrieve i2s bus clock\n");
|
||||
return PTR_ERR(i2s->hclk);
|
||||
}
|
||||
ret = clk_prepare_enable(i2s->hclk);
|
||||
if (ret) {
|
||||
dev_err(i2s->dev, "hclock enable failed %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
i2s->mclk = devm_clk_get(&pdev->dev, "i2s_clk");
|
||||
if (IS_ERR(i2s->mclk)) {
|
||||
dev_err(&pdev->dev, "Can't retrieve i2s master clock\n");
|
||||
return PTR_ERR(i2s->mclk);
|
||||
}
|
||||
|
||||
regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
|
||||
if (IS_ERR(regs))
|
||||
return PTR_ERR(regs);
|
||||
@@ -735,6 +717,24 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
|
||||
dev_set_drvdata(&pdev->dev, i2s);
|
||||
|
||||
i2s->mclk = devm_clk_get(&pdev->dev, "i2s_clk");
|
||||
if (IS_ERR(i2s->mclk)) {
|
||||
dev_err(&pdev->dev, "Can't retrieve i2s master clock\n");
|
||||
return PTR_ERR(i2s->mclk);
|
||||
}
|
||||
|
||||
/* try to prepare related clocks */
|
||||
i2s->hclk = devm_clk_get(&pdev->dev, "i2s_hclk");
|
||||
if (IS_ERR(i2s->hclk)) {
|
||||
dev_err(&pdev->dev, "Can't retrieve i2s bus clock\n");
|
||||
return PTR_ERR(i2s->hclk);
|
||||
}
|
||||
ret = clk_prepare_enable(i2s->hclk);
|
||||
if (ret) {
|
||||
dev_err(i2s->dev, "hclock enable failed %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
if (!pm_runtime_enabled(&pdev->dev)) {
|
||||
ret = i2s_runtime_resume(&pdev->dev);
|
||||
@@ -769,6 +769,8 @@ err_suspend:
|
||||
err_pm_disable:
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
|
||||
clk_disable_unprepare(i2s->hclk);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user