From: Ville Syrjälä <ville.syrj...@linux.intel.com>

i915_gem_execbuffer_wait_for_flips() only works on some old hardware,
and it's not required by sane user space code. So assume that any
insane user space is limited to <= gen5, and just skip
i915_gem_execbuffer_wait_for_flips() for anything more recent.

Also eliminate the extra pending flip wait in intel_finish_fb()
which is based on the pending_flip counter. This wait doesn't
actually do anything when used on the current crtc front buffer,
so the whole thing is pointless. There's a new mechanism for
waiting for pending flips, which actually does the right thing.

Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_gem_execbuffer.c |    4 ++++
 drivers/gpu/drm/i915/intel_display.c       |    4 ----
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 91d43d5..14761ac 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -616,6 +616,10 @@ i915_gem_execbuffer_wait_for_flips(struct 
intel_ring_buffer *ring, u32 flips)
        u32 plane, flip_mask;
        int ret;
 
+       /* This function exists only to please legacy userland. */
+       if (INTEL_INFO(ring->dev)->gen >= 6)
+               return 0;
+
        /* Check for any pending flips. As we only maintain a flip queue depth
         * of 1, we can simply insert a WAIT for the next display flip prior
         * to executing the batch and avoid stalling the CPU.
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 7bf4749..b1e8150 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2182,10 +2182,6 @@ intel_finish_fb(struct drm_framebuffer *old_fb)
        bool was_interruptible = dev_priv->mm.interruptible;
        int ret;
 
-       wait_event(dev_priv->pending_flip_queue,
-                  atomic_read(&dev_priv->mm.wedged) ||
-                  atomic_read(&obj->pending_flip) == 0);
-
        /* Big Hammer, we also need to ensure that any pending
         * MI_WAIT_FOR_EVENT inside a user batch buffer on the
         * current scanout is retired before unpinning the old
-- 
1.7.8.6

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to