XE_WEDGED_MODE_UPON_ANY_HANG_NO_RESET is intended for debugging hangs,
so wedge the device with 'none' recovery method and have it available
to the user for debugging.

Signed-off-by: Raag Jadav <[email protected]>
Reviewed-by: Rodrigo Vivi <[email protected]>
---
 drivers/gpu/drm/xe/xe_device.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index c137dc0a1840..eeb626737760 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1329,8 +1329,15 @@ void xe_device_declare_wedged(struct xe_device *xe)
                xe_gt_declare_wedged(gt);
 
        if (xe_device_wedged(xe)) {
+               /*
+                * XE_WEDGED_MODE_UPON_ANY_HANG_NO_RESET is intended for 
debugging
+                * hangs, so wedge the device with 'none' recovery method and 
have
+                * it available to the user for debugging.
+                */
+               if (xe->wedged.mode == XE_WEDGED_MODE_UPON_ANY_HANG_NO_RESET)
+                       xe_device_set_wedged_method(xe, 
DRM_WEDGE_RECOVERY_NONE);
                /* If no wedge recovery method is set, use default */
-               if (!xe->wedged.method)
+               else if (!xe->wedged.method)
                        xe_device_set_wedged_method(xe, 
DRM_WEDGE_RECOVERY_REBIND |
                                                    
DRM_WEDGE_RECOVERY_BUS_RESET);
 
-- 
2.43.0

Reply via email to