Skip to content

Commit

Permalink
drm/i915: capture error_state also for stuck rings
Browse files Browse the repository at this point in the history
Since quite a while we also the basic output configuration in the
error_state, so it should contain enough information to diagnose
these MI_WAIT hangs.

Reviewed-and-tested-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
  • Loading branch information
Daniel Vetter committed Jan 29, 2012
1 parent 6a9c308 commit 653d7be
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions drivers/gpu/drm/i915/i915_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -1706,14 +1706,14 @@ void i915_hangcheck_elapsed(unsigned long data)
dev_priv->last_instdone1 == instdone1) {
if (dev_priv->hangcheck_count++ > 1) {
DRM_ERROR("Hangcheck timer elapsed... GPU hung\n");
i915_handle_error(dev, true);

if (!IS_GEN2(dev)) {
/* Is the chip hanging on a WAIT_FOR_EVENT?
* If so we can simply poke the RB_WAIT bit
* and break the hang. This should work on
* all but the second generation chipsets.
*/

if (kick_ring(&dev_priv->ring[RCS]))
goto repeat;

Expand All @@ -1726,7 +1726,6 @@ void i915_hangcheck_elapsed(unsigned long data)
goto repeat;
}

i915_handle_error(dev, true);
return;
}
} else {
Expand Down

0 comments on commit 653d7be

Please sign in to comment.