[AMD Official Use Only - AMD Internal Distribution Only]

Series is
Reviewed-by: Yang Wang <[email protected]>

Best Regards,
Kevin
-----Original Message-----
From: Kamal, Asad <[email protected]>
Sent: Friday, February 6, 2026 4:31 PM
To: [email protected]
Cc: Lazar, Lijo <[email protected]>; Zhang, Hawking <[email protected]>; 
Ma, Le <[email protected]>; Zhang, Morris <[email protected]>; Deucher, Alexander 
<[email protected]>; Wang, Yang(Kevin) <[email protected]>; Kamal, 
Asad <[email protected]>
Subject: [PATCH v2] drm/amd/pm: Add acc counter & fw timestamp to xcp metrics

Add accumulation counter and firmware timestamp to partition metrics for
smu_v13_0_6 & smu_v13_0_12

v2: Use U64 for accumulation counter (Lijo)

Signed-off-by: Asad Kamal <[email protected]>
---
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c | 3 +++  
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c  | 2 ++  
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.h  | 6 +++++-
 3 files changed, 10 insertions(+), 1 deletion(-)

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 3d60d3c1e585..f2a6ecb64c03 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
@@ -823,6 +823,9 @@ ssize_t smu_v13_0_12_get_xcp_metrics(struct smu_context 
*smu, struct amdgpu_xcp
                idx++;
        }

+       xcp_metrics->accumulation_counter = metrics->AccumulationCounter;
+       xcp_metrics->firmware_timestamp = metrics->Timestamp;
+
        return sizeof(*xcp_metrics);
 }

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
index 3a9210083ce3..07592e285cf5 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
@@ -2668,6 +2668,8 @@ static ssize_t smu_v13_0_6_get_xcp_metrics(struct 
smu_context *smu, int xcp_id,
                        idx++;
                }
        }
+       xcp_metrics->accumulation_counter = 
GET_METRIC_FIELD(AccumulationCounter, version);
+       xcp_metrics->firmware_timestamp = GET_METRIC_FIELD(Timestamp,
+version);

        return sizeof(*xcp_metrics);
 }
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.h 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.h
index 0588a5aa952d..07d4cb6562b0 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.h
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.h
@@ -259,7 +259,11 @@ void smu_v13_0_12_get_gpu_metrics(struct smu_context *smu, 
void **table,
                  SMU_13_0_6_MAX_XCC);                                         \
        SMU_ARRAY(SMU_MATTR(GFX_BELOW_HOST_LIMIT_TOTAL_ACC), SMU_MUNIT(NONE),  \
                  SMU_MTYPE(U64), gfx_below_host_limit_total_acc,              \
-                 SMU_13_0_6_MAX_XCC);
+                 SMU_13_0_6_MAX_XCC);                                         \
+       SMU_SCALAR(SMU_MATTR(ACCUMULATION_COUNTER), SMU_MUNIT(NONE),           \
+                  SMU_MTYPE(U64), accumulation_counter);                      \
+       SMU_SCALAR(SMU_MATTR(FIRMWARE_TIMESTAMP), SMU_MUNIT(TIME_2),           \
+                  SMU_MTYPE(U64), firmware_timestamp);

 DECLARE_SMU_METRICS_CLASS(smu_v13_0_6_partition_metrics,
                          SMU_13_0_6_PARTITION_METRICS_FIELDS);
--
2.46.0

Reply via email to