[PATCH] drm/amdgpu: Use default reset method handler

Kamal, Asad Asad.Kamal at amd.com
Thu Sep 7 07:34:05 UTC 2023


[AMD Official Use Only - General]

Reviewed-by: Asad Kamal <asad.kamal at amd.com>
Tested-by: Asad Kamal <asad.kamal at amd.com>

Thanks & Regards
Asad

-----Original Message-----
From: Lazar, Lijo <Lijo.Lazar at amd.com>
Sent: Wednesday, September 6, 2023 4:56 PM
To: amd-gfx at lists.freedesktop.org
Cc: Zhang, Hawking <Hawking.Zhang at amd.com>; Deucher, Alexander <Alexander.Deucher at amd.com>; Kamal, Asad <Asad.Kamal at amd.com>
Subject: [PATCH] drm/amdgpu: Use default reset method handler

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 at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/aldebaran.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/aldebaran.c b/drivers/gpu/drm/amd/amdgpu/aldebaran.c
index 82e1c83a7ccc..5d2516210a3a 100644
--- a/drivers/gpu/drm/amd/amdgpu/aldebaran.c
+++ b/drivers/gpu/drm/amd/amdgpu/aldebaran.c
@@ -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;
--
2.25.1



More information about the amd-gfx mailing list