mirror of https://gitee.com/openkylin/linux.git
drm/i915: Make wait-for-pending-flips more defensive
Be sure to always flush a stuck pageflip even if we couldn't possibly expect one to be there. References: https://bugs.freedesktop.org/show_bug.cgi?id=82612 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
e07f0552c6
commit
975d568ade
|
@ -3363,18 +3363,16 @@ void intel_crtc_wait_for_pending_flips(struct drm_crtc *crtc)
|
|||
struct drm_device *dev = crtc->dev;
|
||||
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||
|
||||
if (crtc->primary->fb == NULL)
|
||||
return;
|
||||
|
||||
WARN_ON(waitqueue_active(&dev_priv->pending_flip_queue));
|
||||
|
||||
WARN_ON(wait_event_timeout(dev_priv->pending_flip_queue,
|
||||
!intel_crtc_has_pending_flip(crtc),
|
||||
60*HZ) == 0);
|
||||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
intel_finish_fb(crtc->primary->fb);
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
if (crtc->primary->fb) {
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
intel_finish_fb(crtc->primary->fb);
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
}
|
||||
}
|
||||
|
||||
/* Program iCLKIP clock to the desired frequency */
|
||||
|
|
Loading…
Reference in New Issue