drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed.
[ Upstream commit 48b927770f8ad3f8cf4a024a552abf272af9f592 ] In exynos7_decon_resume, When it fails, we must use clk_disable_unprepare() to free resource that have been used. Fixes: 6f83d20838c09 ("drm/exynos: use DRM_DEV_ERROR to print out error message") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Jian Zhang <zhangjian210@huawei.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
1295dae30f
commit
1cbe7a02e7
@ -800,31 +800,40 @@ static int exynos7_decon_resume(struct device *dev)
|
||||
if (ret < 0) {
|
||||
DRM_DEV_ERROR(dev, "Failed to prepare_enable the pclk [%d]\n",
|
||||
ret);
|
||||
return ret;
|
||||
goto err_pclk_enable;
|
||||
}
|
||||
|
||||
ret = clk_prepare_enable(ctx->aclk);
|
||||
if (ret < 0) {
|
||||
DRM_DEV_ERROR(dev, "Failed to prepare_enable the aclk [%d]\n",
|
||||
ret);
|
||||
return ret;
|
||||
goto err_aclk_enable;
|
||||
}
|
||||
|
||||
ret = clk_prepare_enable(ctx->eclk);
|
||||
if (ret < 0) {
|
||||
DRM_DEV_ERROR(dev, "Failed to prepare_enable the eclk [%d]\n",
|
||||
ret);
|
||||
return ret;
|
||||
goto err_eclk_enable;
|
||||
}
|
||||
|
||||
ret = clk_prepare_enable(ctx->vclk);
|
||||
if (ret < 0) {
|
||||
DRM_DEV_ERROR(dev, "Failed to prepare_enable the vclk [%d]\n",
|
||||
ret);
|
||||
return ret;
|
||||
goto err_vclk_enable;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err_vclk_enable:
|
||||
clk_disable_unprepare(ctx->eclk);
|
||||
err_eclk_enable:
|
||||
clk_disable_unprepare(ctx->aclk);
|
||||
err_aclk_enable:
|
||||
clk_disable_unprepare(ctx->pclk);
|
||||
err_pclk_enable:
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user