if (!HAS_DISPLAY(display))
                return false;
 
-       /* reset doesn't touch the display */
-       if (!intel_display_reset_test(display) &&
-           !gpu_reset_clobbers_display(display))
-               return false;
-
        if (atomic_read(&display->restore.pending_fb_pin)) {
                drm_dbg_kms(display->drm,
                            "Modeset potentially stuck, unbreaking through wedging\n");
 
        intel_wedge_on_timeout(&w, gt, 60 * HZ) {
                struct drm_i915_private *i915 = gt->i915;
                struct intel_display *display = &i915->display;
+               bool need_display_reset;
                bool reset_display;
 
-               reset_display = intel_display_reset_prepare(display);
+               need_display_reset = intel_gt_gpu_reset_clobbers_display(gt) &&
+                       intel_has_gpu_reset(gt);
+
+               reset_display = intel_display_reset_test(display) ||
+                       need_display_reset;
+
+               if (reset_display)
+                       reset_display = intel_display_reset_prepare(display);
 
                intel_gt_reset(gt, engine_mask, reason);