drm/amdgpu: Use default reset method handler
authorLijo Lazar <lijo.lazar@amd.com>
Wed, 6 Sep 2023 11:18:38 +0000 (16:48 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 11 Sep 2023 21:10:25 +0000 (17:10 -0400)
When reset method is not passed in reset context, look for the handler
for default reset method. On Aldebaran, default reset method for SOCs
connected to CPU over XGMI is MODE2.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Asad Kamal <asad.kamal@amd.com>
Tested-by: Asad Kamal <asad.kamal@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/aldebaran.c

index 82e1c83a7ccc3508bc1062d767f8c37b050d80a6..5d2516210a3ae7db9a5834ad70ae422de55a8089 100644 (file)
@@ -50,6 +50,13 @@ aldebaran_get_reset_handler(struct amdgpu_reset_control *reset_ctl,
        struct amdgpu_device *adev = (struct amdgpu_device *)reset_ctl->handle;
        int i;
 
+       if (reset_context->method == AMD_RESET_METHOD_NONE) {
+               if (aldebaran_is_mode2_default(reset_ctl))
+                       reset_context->method = AMD_RESET_METHOD_MODE2;
+               else
+                       reset_context->method = amdgpu_asic_reset_method(adev);
+       }
+
        if (reset_context->method != AMD_RESET_METHOD_NONE) {
                dev_dbg(adev->dev, "Getting reset handler for method %d\n",
                        reset_context->method);
@@ -59,15 +66,6 @@ aldebaran_get_reset_handler(struct amdgpu_reset_control *reset_ctl,
                }
        }
 
-       if (aldebaran_is_mode2_default(reset_ctl)) {
-               for_each_handler(i, handler, reset_ctl) {
-                       if (handler->reset_method == AMD_RESET_METHOD_MODE2) {
-                               reset_context->method = AMD_RESET_METHOD_MODE2;
-                               return handler;
-                       }
-               }
-       }
-
        dev_dbg(adev->dev, "Reset handler not found!\n");
 
        return NULL;