diff options
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_irq.c')
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_irq.c | 22 |
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 | ||
48 | void omap_irq_register(struct drm_device *dev, struct omap_drm_irq *irq) | 48 | void __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 | |||
64 | void 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 | ||
66 | void omap_irq_unregister(struct drm_device *dev, struct omap_drm_irq *irq) | 73 | void __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 | |||
88 | void 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 | ||