summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/qxl/qxl_irq.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-07-18 20:27:23 -1000
committerLinus Torvalds <torvalds@linux-foundation.org>2014-07-18 20:27:23 -1000
commit3e8e2756b6835d5035ba6ade7b4cc9078e54a0e9 (patch)
tree161ae1f1a30ff02dd5e12e28516b8a898b14a530 /drivers/gpu/drm/qxl/qxl_irq.c
parentb8d2d12804f1efe205284cb4b039cfc2944caba5 (diff)
parent3c169e5629d6bce9aede3907aeb38f1c23f61952 (diff)
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie: "One nouveau deadlock fix, one qxl irq handling fix, and a set of radeon pageflipping changes that fix regressions in pageflipping since -rc1 along with a leak and backlight fix. The pageflipping fixes are a bit bigger than I'd like, but there has been a few people focused on testing them" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/radeon: Make classic pageflip completion path less racy. drm/radeon: Add missing vblank_put in pageflip ioctl error path. drm/radeon: Remove redundant fence unref in pageflip path. drm/radeon: Complete page flip even if waiting on the BO fence fails drm/radeon: Move pinning the BO back to radeon_crtc_page_flip() drm/radeon: Prevent too early kms-pageflips triggered by vblank. drm/radeon: set default bl level to something reasonable drm/radeon: avoid leaking edid data drm/qxl: return IRQ_NONE if it was not our irq drm/nouveau/therm: fix a potential deadlock in the therm monitoring code
Diffstat (limited to 'drivers/gpu/drm/qxl/qxl_irq.c')
-rw-r--r--drivers/gpu/drm/qxl/qxl_irq.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_irq.c b/drivers/gpu/drm/qxl/qxl_irq.c
index 34d6a85e9023..0bf1e20c6e44 100644
--- a/drivers/gpu/drm/qxl/qxl_irq.c
+++ b/drivers/gpu/drm/qxl/qxl_irq.c
@@ -33,6 +33,9 @@ irqreturn_t qxl_irq_handler(int irq, void *arg)
pending = xchg(&qdev->ram_header->int_pending, 0);
+ if (!pending)
+ return IRQ_NONE;
+
atomic_inc(&qdev->irq_received);
if (pending & QXL_INTERRUPT_DISPLAY) {