drm/tegra: sor: Disable clocks on error in tegra_sor_init()
[ Upstream commit bf3a3cdcad
]
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
5.4-rM2-2.2.x-imx-squashed
parent
9b6ebb202b
commit
be063ce100
|
@ -2899,6 +2899,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2906,12 +2907,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;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Enable and unmask the HDA codec SCRATCH0 register interrupt. This
|
* Enable and unmask the HDA codec SCRATCH0 register interrupt. This
|
||||||
|
|
Loading…
Reference in New Issue