From: Daniel Vetter Date: Wed, 14 Dec 2011 12:56:58 +0000 (+0100) Subject: drm/i915: kicking rings stuck on semaphores considered harmful X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=4e0e90dcb8a7df1229c69e30abebb59b0b3c2a1f;p=sagit-ice-cold%2Fkernel_xiaomi_msm8998.git 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 Reviewed-by: Chris Wilson Reviewed-by: Ben Widawsky Signed-off-by: Keith Packard --- 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) I915_WRITE_CTL(ring, tmp); return true; } - if (IS_GEN6(dev) && - (tmp & RING_WAIT_SEMAPHORE)) { - DRM_ERROR("Kicking stuck semaphore on %s\n", - ring->name); - I915_WRITE_CTL(ring, tmp); - return true; - } return false; }