RE: [PATCH] drm/amd/pm: fix gpu metrics energy accumulator for smu 13.0.0/13.0.7

"Feng, Kenneth" <[email protected]>
Newsgroups org.freedesktop.lists.amd-gfx
Message-ID <LV8SPRMB0072B912A7913313BDC688C38EAE2@LV8SPRMB0072.namprd12.prod.outlook.com>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.