AMD General

Reviewed-by: Kenneth Feng <[email protected]>

-----Original Message-----
From: Wang, Kevin <[email protected]>
Sent: Wednesday, August 26, 2026 10:01 AM
To: [email protected]
Cc: Deucher, Alexander <[email protected]>; Zhang, Hawking 
<[email protected]>; Feng, Kenneth <[email protected]>; Arif, Maisam 
<[email protected]>
Subject: [PATCH] drm/amd/pm: fix gpu metrics energy accumulator for smu 
13.0.0/13.0.7

GPU metrics v1.3 defines energy_accumulator as a 64‑bit field.
The unsupported‑firmware code path assigns UINT_MAX, which is neither the 
full‑width invalid value for this field nor its default value.

Fixes: 8de9edb35976 ("drm/amd/pm: remove invalid gpu_metrics.energy_accumulator 
on smu v13.0.x")

Signed-off-by: Kevin Wang <[email protected]>
---
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 2 --  
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 4 ++--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
index 81b7c2de45ae..16a6b8fd832c 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
@@ -2095,8 +2095,6 @@ static ssize_t smu_v13_0_0_get_gpu_metrics(struct 
smu_context *smu,
        if ((mp1_ver == IP_VERSION(13, 0, 0) && smu->smc_fw_version <= 
0x004e1e00) ||
            (mp1_ver == IP_VERSION(13, 0, 10) && smu->smc_fw_version <= 
0x00500800))
                gpu_metrics->energy_accumulator = metrics->EnergyAccumulator;
-       else
-               gpu_metrics->energy_accumulator = UINT_MAX;

        if (metrics->AverageGfxActivity <= SMU_13_0_0_BUSY_THRESHOLD)
                gpu_metrics->average_gfxclk_frequency = 
metrics->AverageGfxclkFrequencyPostDs;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
index b94ae43586df..5fe409a23772 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
@@ -2097,8 +2097,8 @@ static ssize_t smu_v13_0_7_get_gpu_metrics(struct 
smu_context *smu,
                                               metrics->Vcn1ActivityPercentage);

        gpu_metrics->average_socket_power = metrics->AverageSocketPower;
-       gpu_metrics->energy_accumulator = smu->smc_fw_version <= 0x00521400 ?
-               metrics->EnergyAccumulator : UINT_MAX;
+       if (smu->smc_fw_version <= 0x00521400)
+               gpu_metrics->energy_accumulator = metrics->EnergyAccumulator;

        if (metrics->AverageGfxActivity <= SMU_13_0_7_BUSY_THRESHOLD)
                gpu_metrics->average_gfxclk_frequency = 
metrics->AverageGfxclkFrequencyPostDs;
--
2.54.0

Reply via email to