aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2013-04-25 22:03:10 -0400
committerBen Skeggs <bskeggs@redhat.com>2013-04-26 01:38:16 -0400
commit10eeaf123dd55cd2c1d2d23366d211dafbe71bde (patch)
tree4f95a37ea89fd8574293d855fb8efe2eadeae0aa
parent6d1d1cc97b8b24e9f7842de13f4b00393392c990 (diff)
drm/nouveau/core: allow non-maskable events
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/core/core/event.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/gpu/drm/nouveau/core/core/event.c b/drivers/gpu/drm/nouveau/core/core/event.c
index 6d01e0f0fc8a..7eb81c1b6fab 100644
--- a/drivers/gpu/drm/nouveau/core/core/event.c
+++ b/drivers/gpu/drm/nouveau/core/core/event.c
@@ -27,8 +27,10 @@ static void
27nouveau_event_put_locked(struct nouveau_event *event, int index, 27nouveau_event_put_locked(struct nouveau_event *event, int index,
28 struct nouveau_eventh *handler) 28 struct nouveau_eventh *handler)
29{ 29{
30 if (!--event->index[index].refs) 30 if (!--event->index[index].refs) {
31 event->disable(event, index); 31 if (event->disable)
32 event->disable(event, index);
33 }
32 list_del(&handler->head); 34 list_del(&handler->head);
33} 35}
34 36
@@ -53,8 +55,10 @@ nouveau_event_get(struct nouveau_event *event, int index,
53 spin_lock_irqsave(&event->lock, flags); 55 spin_lock_irqsave(&event->lock, flags);
54 if (index < event->index_nr) { 56 if (index < event->index_nr) {
55 list_add(&handler->head, &event->index[index].list); 57 list_add(&handler->head, &event->index[index].list);
56 if (!event->index[index].refs++) 58 if (!event->index[index].refs++) {
57 event->enable(event, index); 59 if (event->enable)
60 event->enable(event, index);
61 }
58 } 62 }
59 spin_unlock_irqrestore(&event->lock, flags); 63 spin_unlock_irqrestore(&event->lock, flags);
60} 64}