]> Git Repo - linux.git/commitdiff
drm/i915: Do a full device reset after being wedged
authorChris Wilson <[email protected]>
Mon, 3 Sep 2018 08:33:33 +0000 (09:33 +0100)
committerChris Wilson <[email protected]>
Mon, 3 Sep 2018 11:02:01 +0000 (12:02 +0100)
We only call unset_wedged on the global reset path (since it's a global
operation), so if we are terminally wedged and wish to reset, take the
full device reset path rather than the quicker individual engine resets.

Signed-off-by: Chris Wilson <[email protected]>
Reviewed-by: Joonas Lahtinen <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
drivers/gpu/drm/i915/i915_irq.c

index e31093ce871c35b80fc0c8d76ea13bdf4940ae00..10f28a2ee2e6f5ac93f5a144b4fda52f4a2f78c0 100644 (file)
@@ -3309,7 +3309,8 @@ void i915_handle_error(struct drm_i915_private *dev_priv,
         * Try engine reset when available. We fall back to full reset if
         * single reset fails.
         */
-       if (intel_has_reset_engine(dev_priv)) {
+       if (intel_has_reset_engine(dev_priv) &&
+           !i915_terminally_wedged(&dev_priv->gpu_error)) {
                for_each_engine_masked(engine, dev_priv, engine_mask, tmp) {
                        BUILD_BUG_ON(I915_RESET_MODESET >= I915_RESET_ENGINE);
                        if (test_and_set_bit(I915_RESET_ENGINE + engine->id,
This page took 0.048339 seconds and 4 git commands to generate.