aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-03-17 16:20:28 -0400
committerVille Syrjälä <ville.syrjala@linux.intel.com>2017-03-29 06:56:53 -0400
commit6c06a59703946d2f133c067629eb911bb58ff3a6 (patch)
tree37376f99e61a09bf65b39d9b3f2ef89defe2f156
parent43dc7fe2b2118c76fbc2808dec0c57b3158e6dc0 (diff)
drm: vblank cannot be enabled if dev->irq_enabled is false
Since we cannot enable the vblank if !dev->irq_enabled, we assert that checking for both !vblank->enabled and !dev->irq_enabled is tautological and only need the former. The only time it may differ is when racing with drm_irq_uninstall(), but that will then disable the vblank and wakeup the waiters. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: http://patchwork.freedesktop.org/patch/msgid/20170317202030.24410-2-chris@chris-wilson.co.uk Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-rw-r--r--drivers/gpu/drm/drm_irq.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 372085561f02..5078984568b0 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -1639,10 +1639,9 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
1639 DRM_DEBUG("waiting on vblank count %u, crtc %u\n", 1639 DRM_DEBUG("waiting on vblank count %u, crtc %u\n",
1640 vblwait->request.sequence, pipe); 1640 vblwait->request.sequence, pipe);
1641 DRM_WAIT_ON(ret, vblank->queue, 3 * HZ, 1641 DRM_WAIT_ON(ret, vblank->queue, 3 * HZ,
1642 (((drm_vblank_count(dev, pipe) - 1642 (drm_vblank_count(dev, pipe) -
1643 vblwait->request.sequence) <= (1 << 23)) || 1643 vblwait->request.sequence) <= (1 << 23) ||
1644 !READ_ONCE(vblank->enabled) || 1644 !READ_ONCE(vblank->enabled));
1645 !dev->irq_enabled));
1646 } 1645 }
1647 1646
1648 if (ret != -EINTR) { 1647 if (ret != -EINTR) {