aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/omap_irq.c
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2016-04-18 18:43:03 -0400
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2016-12-19 04:25:00 -0500
commit14389a374b12347eecdc98a3082921ef68cad179 (patch)
treed72c223ab4a47e68154cc56eee6a9498dd7641e3 /drivers/gpu/drm/omapdrm/omap_irq.c
parentd173d3dc5e41af969c1b230a3a6357e51b9baaeb (diff)
drm: omapdrm: Keep vblank interrupt enabled while CRTC is active
Instead of going through a complicated private IRQ registration mechanism, handle the vblank interrupt activation with the standard drm_crtc_vblank_get() and drm_crtc_vblank_put() mechanism. This will let the DRM core keep the vblank interrupt enabled as long as needed to update the frame counter. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_irq.c')
-rw-r--r--drivers/gpu/drm/omapdrm/omap_irq.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_irq.c b/drivers/gpu/drm/omapdrm/omap_irq.c
index e1925fa6d849..1c826907dead 100644
--- a/drivers/gpu/drm/omapdrm/omap_irq.c
+++ b/drivers/gpu/drm/omapdrm/omap_irq.c
@@ -245,8 +245,10 @@ static irqreturn_t omap_irq_handler(int irq, void *arg)
245 struct drm_crtc *crtc = priv->crtcs[id]; 245 struct drm_crtc *crtc = priv->crtcs[id];
246 enum omap_channel channel = omap_crtc_channel(crtc); 246 enum omap_channel channel = omap_crtc_channel(crtc);
247 247
248 if (irqstatus & pipe2vbl(crtc)) 248 if (irqstatus & pipe2vbl(crtc)) {
249 drm_handle_vblank(dev, id); 249 drm_handle_vblank(dev, id);
250 omap_crtc_vblank_irq(crtc);
251 }
250 252
251 if (irqstatus & dispc_mgr_get_sync_lost_irq(channel)) 253 if (irqstatus & dispc_mgr_get_sync_lost_irq(channel))
252 omap_crtc_error_irq(crtc, irqstatus); 254 omap_crtc_error_irq(crtc, irqstatus);