aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2011-12-14 07:56:58 -0500
committerKeith Packard <keithp@keithp.com>2012-01-03 13:26:07 -0500
commit4e0e90dcb8a7df1229c69e30abebb59b0b3c2a1f (patch)
tree8a7a8ba88526686fc71725fe54a5925c24e2687d /drivers/gpu
parentae662d31264979e52581bd2573bf0b82812f52ab (diff)
drm/i915: kicking rings stuck on semaphores considered harmful
If our semaphore logic gets confused and we have a ring stuck waiting for one, there's a decent chance it'll just execute garbage when being kicked. Also, kicking the ring obscures the place where the error first occured, making error_state decoding much harder. So drop this an let gpu reset handle this mess in a clean fashion. In contrast, kicking rings stuck on MI_WAIT is rather harmless, at worst there'll be a bit of screen-flickering. There's also old broken userspace out there which needs this as a work-around. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Chris Wilson <chris@hchris-wilson.co.uk> Reviewed-by: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 58493114c942..5d433fc11ace 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1649,13 +1649,6 @@ static bool kick_ring(struct intel_ring_buffer *ring)
1649 I915_WRITE_CTL(ring, tmp); 1649 I915_WRITE_CTL(ring, tmp);
1650 return true; 1650 return true;
1651 } 1651 }
1652 if (IS_GEN6(dev) &&
1653 (tmp & RING_WAIT_SEMAPHORE)) {
1654 DRM_ERROR("Kicking stuck semaphore on %s\n",
1655 ring->name);
1656 I915_WRITE_CTL(ring, tmp);
1657 return true;
1658 }
1659 return false; 1652 return false;
1660} 1653}
1661 1654