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>
This commit is contained in:
parent
43dc7fe2b2
commit
6c06a59703
|
@ -1639,10 +1639,9 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
|
|||
DRM_DEBUG("waiting on vblank count %u, crtc %u\n",
|
||||
vblwait->request.sequence, pipe);
|
||||
DRM_WAIT_ON(ret, vblank->queue, 3 * HZ,
|
||||
(((drm_vblank_count(dev, pipe) -
|
||||
vblwait->request.sequence) <= (1 << 23)) ||
|
||||
!READ_ONCE(vblank->enabled) ||
|
||||
!dev->irq_enabled));
|
||||
(drm_vblank_count(dev, pipe) -
|
||||
vblwait->request.sequence) <= (1 << 23) ||
|
||||
!READ_ONCE(vblank->enabled));
|
||||
}
|
||||
|
||||
if (ret != -EINTR) {
|
||||
|
|
Loading…
Reference in New Issue