diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2011-12-14 07:56:58 -0500 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-01-03 13:26:07 -0500 |
commit | 4e0e90dcb8a7df1229c69e30abebb59b0b3c2a1f (patch) | |
tree | 8a7a8ba88526686fc71725fe54a5925c24e2687d /drivers/gpu | |
parent | ae662d31264979e52581bd2573bf0b82812f52ab (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.c | 7 |
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 | ||