diff mbox

drm/hisilicon: Fix ADE vblank on/off handling

Message ID 20160630092300.141864-1-xinliang.liu@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Xinliang Liu June 30, 2016, 9:23 a.m. UTC
Vblank turn on should be called in crtc's enable callback.
And turn off called in crtc's disable callback.

Thanks to Daniel Vetter, this bug is reported by him.

Reported-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>
---
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Daniel Vetter July 12, 2016, 12:17 p.m. UTC | #1
On Thu, Jun 30, 2016 at 05:23:00PM +0800, Xinliang Liu wrote:
> Vblank turn on should be called in crtc's enable callback.
> And turn off called in crtc's disable callback.
> 
> Thanks to Daniel Vetter, this bug is reported by him.
> 
> Reported-by: Daniel Vetter <daniel.vetter@intel.com>
> Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>

Applied to drm-misc.
-Daniel

> ---
>  drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index ed76baad525f..805f4326fafe 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -487,6 +487,7 @@ static void ade_crtc_enable(struct drm_crtc *crtc)
>  	ade_set_medianoc_qos(acrtc);
>  	ade_display_enable(acrtc);
>  	ade_dump_regs(ctx->base);
> +	drm_crtc_vblank_on(crtc);
>  	acrtc->enable = true;
>  }
>  
> @@ -498,6 +499,7 @@ static void ade_crtc_disable(struct drm_crtc *crtc)
>  	if (!acrtc->enable)
>  		return;
>  
> +	drm_crtc_vblank_off(crtc);
>  	ade_power_down(ctx);
>  	acrtc->enable = false;
>  }
> -- 
> 2.8.3
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index ed76baad525f..805f4326fafe 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -487,6 +487,7 @@  static void ade_crtc_enable(struct drm_crtc *crtc)
 	ade_set_medianoc_qos(acrtc);
 	ade_display_enable(acrtc);
 	ade_dump_regs(ctx->base);
+	drm_crtc_vblank_on(crtc);
 	acrtc->enable = true;
 }
 
@@ -498,6 +499,7 @@  static void ade_crtc_disable(struct drm_crtc *crtc)
 	if (!acrtc->enable)
 		return;
 
+	drm_crtc_vblank_off(crtc);
 	ade_power_down(ctx);
 	acrtc->enable = false;
 }