]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: Add client ids for mmhub v2.x
authorLijo Lazar <lijo.lazar@amd.com>
Tue, 17 Mar 2026 08:09:56 +0000 (13:39 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 17 Mar 2026 21:50:50 +0000 (17:50 -0400)
Initialize client ids for mmhub v2.x

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c

index 534cb4c544dc45db4b8a539496e938d70ad0cc8c..42a09a277ec3e86b1d13a1a294a32f4ad0bb6c53 100644 (file)
@@ -141,7 +141,7 @@ mmhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device *adev,
                                             uint32_t status)
 {
        uint32_t cid, rw;
-       const char *mmhub_cid = NULL;
+       const char *mmhub_cid;
 
        cid = REG_GET_FIELD(status,
                            MMVM_L2_PROTECTION_FAULT_STATUS, CID);
@@ -151,25 +151,7 @@ mmhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device *adev,
        dev_err(adev->dev,
                "MMVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
                status);
-       switch (amdgpu_ip_version(adev, MMHUB_HWIP, 0)) {
-       case IP_VERSION(2, 0, 0):
-       case IP_VERSION(2, 0, 2):
-               mmhub_cid = cid < ARRAY_SIZE(mmhub_client_ids_navi1x) ?
-                       mmhub_client_ids_navi1x[cid][rw] : NULL;
-               break;
-       case IP_VERSION(2, 1, 0):
-       case IP_VERSION(2, 1, 1):
-               mmhub_cid = cid < ARRAY_SIZE(mmhub_client_ids_sienna_cichlid) ?
-                       mmhub_client_ids_sienna_cichlid[cid][rw] : NULL;
-               break;
-       case IP_VERSION(2, 1, 2):
-               mmhub_cid = cid < ARRAY_SIZE(mmhub_client_ids_beige_goby) ?
-                       mmhub_client_ids_beige_goby[cid][rw] : NULL;
-               break;
-       default:
-               mmhub_cid = NULL;
-               break;
-       }
+       mmhub_cid = amdgpu_mmhub_client_name(&adev->mmhub, cid, rw);
        dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
                mmhub_cid ? mmhub_cid : "unknown", cid);
        dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
@@ -521,6 +503,31 @@ static const struct amdgpu_vmhub_funcs mmhub_v2_0_vmhub_funcs = {
        .get_invalidate_req = mmhub_v2_0_get_invalidate_req,
 };
 
+static void mmhub_v2_0_init_client_info(struct amdgpu_device *adev)
+{
+       switch (amdgpu_ip_version(adev, MMHUB_HWIP, 0)) {
+       case IP_VERSION(2, 0, 0):
+       case IP_VERSION(2, 0, 2):
+               amdgpu_mmhub_init_client_info(&adev->mmhub,
+                                            mmhub_client_ids_navi1x,
+                                            ARRAY_SIZE(mmhub_client_ids_navi1x));
+               break;
+       case IP_VERSION(2, 1, 0):
+       case IP_VERSION(2, 1, 1):
+               amdgpu_mmhub_init_client_info(&adev->mmhub,
+                                            mmhub_client_ids_sienna_cichlid,
+                                            ARRAY_SIZE(mmhub_client_ids_sienna_cichlid));
+               break;
+       case IP_VERSION(2, 1, 2):
+               amdgpu_mmhub_init_client_info(&adev->mmhub,
+                                            mmhub_client_ids_beige_goby,
+                                            ARRAY_SIZE(mmhub_client_ids_beige_goby));
+               break;
+       default:
+               break;
+       }
+}
+
 static void mmhub_v2_0_init(struct amdgpu_device *adev)
 {
        struct amdgpu_vmhub *hub = &adev->vmhub[AMDGPU_MMHUB0(0)];
@@ -561,6 +568,8 @@ static void mmhub_v2_0_init(struct amdgpu_device *adev)
                MMVM_CONTEXT1_CNTL__EXECUTE_PROTECTION_FAULT_ENABLE_INTERRUPT_MASK;
 
        hub->vmhub_funcs = &mmhub_v2_0_vmhub_funcs;
+
+       mmhub_v2_0_init_client_info(adev);
 }
 
 static void mmhub_v2_0_update_medium_grain_clock_gating(struct amdgpu_device *adev,
index ceb2f6b46de521a8080dcd7ac6f739819224f34b..31c479d76c421807c37ed1b9595c75e745bd9e32 100644 (file)
@@ -80,7 +80,7 @@ mmhub_v2_3_print_l2_protection_fault_status(struct amdgpu_device *adev,
                                             uint32_t status)
 {
        uint32_t cid, rw;
-       const char *mmhub_cid = NULL;
+       const char *mmhub_cid;
 
        cid = REG_GET_FIELD(status,
                            MMVM_L2_PROTECTION_FAULT_STATUS, CID);
@@ -90,17 +90,7 @@ mmhub_v2_3_print_l2_protection_fault_status(struct amdgpu_device *adev,
        dev_err(adev->dev,
                "MMVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
                status);
-       switch (amdgpu_ip_version(adev, MMHUB_HWIP, 0)) {
-       case IP_VERSION(2, 3, 0):
-       case IP_VERSION(2, 4, 0):
-       case IP_VERSION(2, 4, 1):
-               mmhub_cid = cid < ARRAY_SIZE(mmhub_client_ids_vangogh) ?
-                       mmhub_client_ids_vangogh[cid][rw] : NULL;
-               break;
-       default:
-               mmhub_cid = NULL;
-               break;
-       }
+       mmhub_cid = amdgpu_mmhub_client_name(&adev->mmhub, cid, rw);
        dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
                mmhub_cid ? mmhub_cid : "unknown", cid);
        dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
@@ -487,6 +477,10 @@ static void mmhub_v2_3_init(struct amdgpu_device *adev)
                MMVM_CONTEXT1_CNTL__EXECUTE_PROTECTION_FAULT_ENABLE_INTERRUPT_MASK;
 
        hub->vmhub_funcs = &mmhub_v2_3_vmhub_funcs;
+
+       amdgpu_mmhub_init_client_info(&adev->mmhub,
+                                    mmhub_client_ids_vangogh,
+                                    ARRAY_SIZE(mmhub_client_ids_vangogh));
 }
 
 static void