aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/omap_crtc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_crtc.c')
-rw-r--r--drivers/gpu/drm/omapdrm/omap_crtc.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 0fd2eb139f6e..4313bb0a49a6 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -411,7 +411,7 @@ static void omap_crtc_error_irq(struct omap_drm_irq *irq, uint32_t irqstatus)
411 struct drm_crtc *crtc = &omap_crtc->base; 411 struct drm_crtc *crtc = &omap_crtc->base;
412 DRM_ERROR("%s: errors: %08x\n", omap_crtc->name, irqstatus); 412 DRM_ERROR("%s: errors: %08x\n", omap_crtc->name, irqstatus);
413 /* avoid getting in a flood, unregister the irq until next vblank */ 413 /* avoid getting in a flood, unregister the irq until next vblank */
414 omap_irq_unregister(crtc->dev, &omap_crtc->error_irq); 414 __omap_irq_unregister(crtc->dev, &omap_crtc->error_irq);
415} 415}
416 416
417static void omap_crtc_apply_irq(struct omap_drm_irq *irq, uint32_t irqstatus) 417static void omap_crtc_apply_irq(struct omap_drm_irq *irq, uint32_t irqstatus)
@@ -421,13 +421,13 @@ static void omap_crtc_apply_irq(struct omap_drm_irq *irq, uint32_t irqstatus)
421 struct drm_crtc *crtc = &omap_crtc->base; 421 struct drm_crtc *crtc = &omap_crtc->base;
422 422
423 if (!omap_crtc->error_irq.registered) 423 if (!omap_crtc->error_irq.registered)
424 omap_irq_register(crtc->dev, &omap_crtc->error_irq); 424 __omap_irq_register(crtc->dev, &omap_crtc->error_irq);
425 425
426 if (!dispc_mgr_go_busy(omap_crtc->channel)) { 426 if (!dispc_mgr_go_busy(omap_crtc->channel)) {
427 struct omap_drm_private *priv = 427 struct omap_drm_private *priv =
428 crtc->dev->dev_private; 428 crtc->dev->dev_private;
429 DBG("%s: apply done", omap_crtc->name); 429 DBG("%s: apply done", omap_crtc->name);
430 omap_irq_unregister(crtc->dev, &omap_crtc->apply_irq); 430 __omap_irq_unregister(crtc->dev, &omap_crtc->apply_irq);
431 queue_work(priv->wq, &omap_crtc->apply_work); 431 queue_work(priv->wq, &omap_crtc->apply_work);
432 } 432 }
433} 433}
@@ -623,6 +623,11 @@ void omap_crtc_pre_init(void)
623 dss_install_mgr_ops(&mgr_ops); 623 dss_install_mgr_ops(&mgr_ops);
624} 624}
625 625
626void omap_crtc_pre_uninit(void)
627{
628 dss_uninstall_mgr_ops();
629}
630
626/* initialize crtc */ 631/* initialize crtc */
627struct drm_crtc *omap_crtc_init(struct drm_device *dev, 632struct drm_crtc *omap_crtc_init(struct drm_device *dev,
628 struct drm_plane *plane, enum omap_channel channel, int id) 633 struct drm_plane *plane, enum omap_channel channel, int id)