break;
 
        case ENGINE_DEAD:
-               if (GEM_SHOW_DEBUG()) {
-                       struct drm_printer p = drm_debug_printer("hangcheck");
-                       intel_engine_dump(engine, &p, "%s\n", engine->name);
-               }
                break;
 
        default:
                        wedged |= intel_engine_flag(engine);
        }
 
+       if (GEM_SHOW_DEBUG() && (hung | stuck)) {
+               struct drm_printer p = drm_debug_printer("hangcheck");
+
+               for_each_engine(engine, dev_priv, id) {
+                       if (intel_engine_is_idle(engine))
+                               continue;
+
+                       intel_engine_dump(engine, &p, "%s\n", engine->name);
+               }
+       }
+
        if (wedged) {
                dev_err(dev_priv->drm.dev,
                        "GPU recovery timed out,"