drm/hisilicon: Fix ADE vblank on/off handling
authorXinliang Liu <xinliang.liu@linaro.org>
Thu, 30 Jun 2016 09:23:00 +0000 (17:23 +0800)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 12 Jul 2016 12:17:03 +0000 (14:17 +0200)
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>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20160630092300.141864-1-xinliang.liu@linaro.org
drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c

index ed76baa..805f432 100644 (file)
@@ -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;
 }