drm/tegra: sor: Disable clocks on error in tegra_sor_init()
Fix the missing clk_disable_unprepare() before return from tegra_sor_init() in the error handling case. Signed-off-by: Qinglang Miao <miaoqinglang@huawei.com> Signed-off-by: Thierry Reding <treding@nvidia.com>zero-sugar-mainline-defconfig
parent
123f01a0c9
commit
bf3a3cdcad
|
@ -3143,6 +3143,7 @@ static int tegra_sor_init(struct host1x_client *client)
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(sor->dev, "failed to deassert SOR reset: %d\n",
|
dev_err(sor->dev, "failed to deassert SOR reset: %d\n",
|
||||||
err);
|
err);
|
||||||
|
clk_disable_unprepare(sor->clk);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3150,12 +3151,17 @@ static int tegra_sor_init(struct host1x_client *client)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = clk_prepare_enable(sor->clk_safe);
|
err = clk_prepare_enable(sor->clk_safe);
|
||||||
if (err < 0)
|
if (err < 0) {
|
||||||
|
clk_disable_unprepare(sor->clk);
|
||||||
return err;
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
err = clk_prepare_enable(sor->clk_dp);
|
err = clk_prepare_enable(sor->clk_dp);
|
||||||
if (err < 0)
|
if (err < 0) {
|
||||||
|
clk_disable_unprepare(sor->clk_safe);
|
||||||
|
clk_disable_unprepare(sor->clk);
|
||||||
return err;
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue