drm/hisilicon: Fix ADE vblank on/off handling
authorXinliang Liu <xinliang.liu@linaro.org>
Thu, 30 Jun 2016 09:06:26 +0000 (17:06 +0800)
committerXinliang Liu <xinliang.liu@linaro.org>
Mon, 4 Jul 2016 10:49:21 +0000 (18:49 +0800)
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

index 16834f4..c3707d4 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;
 }