]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amd/pm: Add unique ids for SMUv13.0.12 SOCs
authorLijo Lazar <lijo.lazar@amd.com>
Mon, 4 Aug 2025 08:06:52 +0000 (13:36 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 6 Aug 2025 18:34:42 +0000 (14:34 -0400)
Fetch and store the unique ids for AIDs/XCDs in SMUv13.0.12 SOCs.

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

index fd06dcc2b81d54616e2ff692077ac1cfa7daced1..ea2682f9d579d5bbf20cf1e4365da145a95afcf5 100644 (file)
@@ -257,7 +257,7 @@ int smu_v13_0_12_setup_driver_pptable(struct smu_context *smu)
        struct PPTable_t *pptable =
                (struct PPTable_t *)smu_table->driver_pptable;
        uint32_t table_version;
-       int ret, i;
+       int ret, i, n;
 
        if (!pptable->Init) {
                ret = smu_v13_0_6_get_static_metrics_table(smu);
@@ -296,6 +296,22 @@ int smu_v13_0_12_setup_driver_pptable(struct smu_context *smu)
                /* use AID0 serial number by default */
                pptable->PublicSerialNumber_AID =
                        static_metrics->PublicSerialNumber_AID[0];
+
+               amdgpu_device_set_uid(smu->adev->uid_info, AMDGPU_UID_TYPE_SOC,
+                                     0, pptable->PublicSerialNumber_AID);
+               n = ARRAY_SIZE(static_metrics->PublicSerialNumber_AID);
+               for (i = 0; i < n; i++) {
+                       amdgpu_device_set_uid(
+                               smu->adev->uid_info, AMDGPU_UID_TYPE_AID, i,
+                               static_metrics->PublicSerialNumber_AID[i]);
+               }
+               n = ARRAY_SIZE(static_metrics->PublicSerialNumber_XCD);
+               for (i = 0; i < n; i++) {
+                       amdgpu_device_set_uid(
+                               smu->adev->uid_info, AMDGPU_UID_TYPE_XCD, i,
+                               static_metrics->PublicSerialNumber_XCD[i]);
+               }
+
                ret = smu_v13_0_12_fru_get_product_info(smu, static_metrics);
                if (ret)
                        return ret;