Fetch and store the unique ids for AIDs/XCDs in SMUv13.0.12 SOCs.

Signed-off-by: Lijo Lazar <lijo.la...@amd.com>
---
 .../drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
index 02a455a31c25..a1c5781ccb2a 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
@@ -83,7 +83,6 @@ const struct cmn2asic_mapping 
smu_v13_0_12_feature_mask_map[SMU_FEATURE_COUNT] =
        SMU_13_0_12_FEA_MAP(SMU_FEATURE_PIT_BIT,                        
FEATURE_PIT),
 };
 
-// clang-format off
 const struct cmn2asic_msg_mapping smu_v13_0_12_message_map[SMU_MSG_MAX_COUNT] 
= {
        MSG_MAP(TestMessage,                         PPSMC_MSG_TestMessage,     
                0),
        MSG_MAP(GetSmuVersion,                       PPSMC_MSG_GetSmuVersion,   
                1),
@@ -220,7 +219,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);
@@ -259,6 +258,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;
-- 
2.49.0

Reply via email to