Undo preparation of a clock source, if sti_hqvdp_start_xp70 and
sti_hqvdp_atomic_check are not successful.
Signed-off-by: Arvind Yadav <[email protected]>
---
drivers/gpu/drm/sti/sti_hqvdp.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
index 075802d..8dbb34d 100644
--- a/drivers/gpu/drm/sti/sti_hqvdp.c
+++ b/drivers/gpu/drm/sti/sti_hqvdp.c
@@ -959,6 +959,7 @@ static void sti_hqvdp_start_xp70(struct sti_hqvdp *hqvdp)
}
if (i == POLL_MAX_ATTEMPT) {
DRM_ERROR("Could not reset\n");
+ clk_disable_unprepare(hqvdp->clk);
goto out;
}
@@ -995,6 +996,7 @@ static void sti_hqvdp_start_xp70(struct sti_hqvdp *hqvdp)
}
if (i == POLL_MAX_ATTEMPT) {
DRM_ERROR("Could not boot\n");
+ clk_disable_unprepare(hqvdp->clk);
goto out;
}
@@ -1082,6 +1084,7 @@ static int sti_hqvdp_atomic_check(struct drm_plane *drm_plane,
&hqvdp->vtg_nb,
crtc)) {
DRM_ERROR("Cannot register VTG notifier\n");
+ clk_disable_unprepare(hqvdp->clk_pix_main);
return -EINVAL;
}
hqvdp->vtg_registered = true;
--
1.9.1
2017-06-21 12:15 GMT+02:00 Arvind Yadav <[email protected]>:
> Undo preparation of a clock source, if sti_hqvdp_start_xp70 and
> sti_hqvdp_atomic_check are not successful.
>
> Signed-off-by: Arvind Yadav <[email protected]>
Applied on drm-misc-next, thanks,
Benjamin
> ---
> drivers/gpu/drm/sti/sti_hqvdp.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
> index 075802d..8dbb34d 100644
> --- a/drivers/gpu/drm/sti/sti_hqvdp.c
> +++ b/drivers/gpu/drm/sti/sti_hqvdp.c
> @@ -959,6 +959,7 @@ static void sti_hqvdp_start_xp70(struct sti_hqvdp *hqvdp)
> }
> if (i == POLL_MAX_ATTEMPT) {
> DRM_ERROR("Could not reset\n");
> + clk_disable_unprepare(hqvdp->clk);
> goto out;
> }
>
> @@ -995,6 +996,7 @@ static void sti_hqvdp_start_xp70(struct sti_hqvdp *hqvdp)
> }
> if (i == POLL_MAX_ATTEMPT) {
> DRM_ERROR("Could not boot\n");
> + clk_disable_unprepare(hqvdp->clk);
> goto out;
> }
>
> @@ -1082,6 +1084,7 @@ static int sti_hqvdp_atomic_check(struct drm_plane *drm_plane,
> &hqvdp->vtg_nb,
> crtc)) {
> DRM_ERROR("Cannot register VTG notifier\n");
> + clk_disable_unprepare(hqvdp->clk_pix_main);
> return -EINVAL;
> }
> hqvdp->vtg_registered = true;
> --
> 1.9.1