Commit 6c06a597 authored by Chris Wilson's avatar Chris Wilson Committed by Ville Syrjälä

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: default avatarChris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20170317202030.24410-2-chris@chris-wilson.co.ukReviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
parent 43dc7fe2
...@@ -1639,10 +1639,9 @@ int drm_wait_vblank(struct drm_device *dev, void *data, ...@@ -1639,10 +1639,9 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
DRM_DEBUG("waiting on vblank count %u, crtc %u\n", DRM_DEBUG("waiting on vblank count %u, crtc %u\n",
vblwait->request.sequence, pipe); vblwait->request.sequence, pipe);
DRM_WAIT_ON(ret, vblank->queue, 3 * HZ, DRM_WAIT_ON(ret, vblank->queue, 3 * HZ,
(((drm_vblank_count(dev, pipe) - (drm_vblank_count(dev, pipe) -
vblwait->request.sequence) <= (1 << 23)) || vblwait->request.sequence) <= (1 << 23) ||
!READ_ONCE(vblank->enabled) || !READ_ONCE(vblank->enabled));
!dev->irq_enabled));
} }
if (ret != -EINTR) { if (ret != -EINTR) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment