drm/i915: capture error_state also for stuck rings
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>
This commit is contained in:
parent
6a9c308de0
commit
653d7bed26
|
@ -1706,6 +1706,7 @@ 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?
|
||||
|
@ -1713,7 +1714,6 @@ void i915_hangcheck_elapsed(unsigned long data)
|
|||
* and break the hang. This should work on
|
||||
* all but the second generation chipsets.
|
||||
*/
|
||||
|
||||
if (kick_ring(&dev_priv->ring[RCS]))
|
||||
goto repeat;
|
||||
|
||||
|
@ -1726,7 +1726,6 @@ void i915_hangcheck_elapsed(unsigned long data)
|
|||
goto repeat;
|
||||
}
|
||||
|
||||
i915_handle_error(dev, true);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue