aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/omap_irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_irq.c')
-rw-r--r--drivers/gpu/drm/omapdrm/omap_irq.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_irq.c b/drivers/gpu/drm/omapdrm/omap_irq.c
index cb858600185f..da690d0e0f03 100644
--- a/drivers/gpu/drm/omapdrm/omap_irq.c
+++ b/drivers/gpu/drm/omapdrm/omap_irq.c
@@ -45,12 +45,11 @@ static void omap_irq_update(struct drm_device *dev)
45 dispc_read_irqenable(); /* flush posted write */ 45 dispc_read_irqenable(); /* flush posted write */
46} 46}
47 47
48void omap_irq_register(struct drm_device *dev, struct omap_drm_irq *irq) 48void __omap_irq_register(struct drm_device *dev, struct omap_drm_irq *irq)
49{ 49{
50 struct omap_drm_private *priv = dev->dev_private; 50 struct omap_drm_private *priv = dev->dev_private;
51 unsigned long flags; 51 unsigned long flags;
52 52
53 dispc_runtime_get();
54 spin_lock_irqsave(&list_lock, flags); 53 spin_lock_irqsave(&list_lock, flags);
55 54
56 if (!WARN_ON(irq->registered)) { 55 if (!WARN_ON(irq->registered)) {
@@ -60,14 +59,21 @@ void omap_irq_register(struct drm_device *dev, struct omap_drm_irq *irq)
60 } 59 }
61 60
62 spin_unlock_irqrestore(&list_lock, flags); 61 spin_unlock_irqrestore(&list_lock, flags);
62}
63
64void omap_irq_register(struct drm_device *dev, struct omap_drm_irq *irq)
65{
66 dispc_runtime_get();
67
68 __omap_irq_register(dev, irq);
69
63 dispc_runtime_put(); 70 dispc_runtime_put();
64} 71}
65 72
66void omap_irq_unregister(struct drm_device *dev, struct omap_drm_irq *irq) 73void __omap_irq_unregister(struct drm_device *dev, struct omap_drm_irq *irq)
67{ 74{
68 unsigned long flags; 75 unsigned long flags;
69 76
70 dispc_runtime_get();
71 spin_lock_irqsave(&list_lock, flags); 77 spin_lock_irqsave(&list_lock, flags);
72 78
73 if (!WARN_ON(!irq->registered)) { 79 if (!WARN_ON(!irq->registered)) {
@@ -77,6 +83,14 @@ void omap_irq_unregister(struct drm_device *dev, struct omap_drm_irq *irq)
77 } 83 }
78 84
79 spin_unlock_irqrestore(&list_lock, flags); 85 spin_unlock_irqrestore(&list_lock, flags);
86}
87
88void omap_irq_unregister(struct drm_device *dev, struct omap_drm_irq *irq)
89{
90 dispc_runtime_get();
91
92 __omap_irq_unregister(dev, irq);
93
80 dispc_runtime_put(); 94 dispc_runtime_put();
81} 95}
82 96