diff options
author | Eric Anholt <eric@anholt.net> | 2011-12-22 17:54:59 -0500 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-01-03 12:31:14 -0500 |
commit | 7ea29b13e5e3e1e61e612349eb0366efdb6457f3 (patch) | |
tree | c0f6d48c329863c226ddc3380165305cb3c65a1f /drivers/gpu/drm | |
parent | 116ac8d26101c06ad80a4e1cb560db1c525397f8 (diff) |
drm/i915: Do the fallback non-IRQ wait in ring throttle, too.
As a workaround for IRQ synchronization issues in the gen7 BLT ring,
we want to turn the two wait functions into polling loops.
Signed-off-by: Eric Anholt <eric@anholt.net>
Tested-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 8359dc77704..66e0a555dbc 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -3309,6 +3309,10 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file) | |||
3309 | 3309 | ||
3310 | if (ret == 0 && atomic_read(&dev_priv->mm.wedged)) | 3310 | if (ret == 0 && atomic_read(&dev_priv->mm.wedged)) |
3311 | ret = -EIO; | 3311 | ret = -EIO; |
3312 | } else if (wait_for(i915_seqno_passed(ring->get_seqno(ring), | ||
3313 | seqno) || | ||
3314 | atomic_read(&dev_priv->mm.wedged), 3000)) { | ||
3315 | ret = -EBUSY; | ||
3312 | } | 3316 | } |
3313 | } | 3317 | } |
3314 | 3318 | ||