summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/sun4i/sun4i_crtc.c
diff options
context:
space:
mode:
authorMaxime Ripard <maxime.ripard@free-electrons.com>2016-06-20 13:20:59 +0300
committerMaxime Ripard <maxime.ripard@free-electrons.com>2016-06-30 22:55:32 +0300
commit2cd368300aa5bcec40c079ee5096287847506504 (patch)
tree82820da6967dc2165ae799b184d3549280d5fe1b /drivers/gpu/drm/sun4i/sun4i_crtc.c
parent0b340405fca980b12a2ddafdd4536ad6fb624755 (diff)
downloadlinux-2cd368300aa5bcec40c079ee5096287847506504.tar.xz
drm/sun4i: Send vblank event when the CRTC is disabled
So far, we were missing to send the vblank event when disabling the CRTC, making us never report the last vblank event. This was causing a time out on the page flip, which should be solved now. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Diffstat (limited to 'drivers/gpu/drm/sun4i/sun4i_crtc.c')
-rw-r--r--drivers/gpu/drm/sun4i/sun4i_crtc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/sun4i_crtc.c
index 4182a21f5923..41cacecbea9a 100644
--- a/drivers/gpu/drm/sun4i/sun4i_crtc.c
+++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c
@@ -65,6 +65,14 @@ static void sun4i_crtc_disable(struct drm_crtc *crtc)
DRM_DEBUG_DRIVER("Disabling the CRTC\n");
sun4i_tcon_disable(drv->tcon);
+
+ if (crtc->state->event && !crtc->state->active) {
+ spin_lock_irq(&crtc->dev->event_lock);
+ drm_crtc_send_vblank_event(crtc, crtc->state->event);
+ spin_unlock_irq(&crtc->dev->event_lock);
+
+ crtc->state->event = NULL;
+ }
}
static void sun4i_crtc_enable(struct drm_crtc *crtc)