On Thu, Feb 26, 2026 at 1:54 AM Yang Wang <[email protected]> wrote: > > v1: > The metrics->EnergyAccumulator field has been deprecated on newer pmfw. > > v2: > add smu 13.0.0/13.0.7/13.0.10 support. > > Signed-off-by: Yang Wang <[email protected]>
Acked-by: Alex Deucher <[email protected]> > --- > drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 8 +++++++- > drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 3 ++- > 2 files changed, 9 insertions(+), 2 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 468d51f5f918..35d36f2fe7dd 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 > @@ -2035,6 +2035,7 @@ static ssize_t smu_v13_0_0_get_gpu_metrics(struct > smu_context *smu, > smu, SMU_DRIVER_TABLE_GPU_METRICS); > SmuMetricsExternal_t metrics_ext; > SmuMetrics_t *metrics = &metrics_ext.SmuMetrics; > + uint32_t mp1_ver = amdgpu_ip_version(smu->adev, MP1_HWIP, 0); > int ret = 0; > > ret = smu_cmn_get_metrics_table(smu, > @@ -2059,7 +2060,12 @@ static ssize_t smu_v13_0_0_get_gpu_metrics(struct > smu_context *smu, > > metrics->Vcn1ActivityPercentage); > > gpu_metrics->average_socket_power = metrics->AverageSocketPower; > - gpu_metrics->energy_accumulator = metrics->EnergyAccumulator; > + > + 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 a6c22ae86c98..4f729f54a64c 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 > @@ -2066,7 +2066,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 = metrics->EnergyAccumulator; > + gpu_metrics->energy_accumulator = smu->smc_fw_version <= 0x00521400 ? > + metrics->EnergyAccumulator : UINT_MAX; > > if (metrics->AverageGfxActivity <= SMU_13_0_7_BUSY_THRESHOLD) > gpu_metrics->average_gfxclk_frequency = > metrics->AverageGfxclkFrequencyPostDs; > -- > 2.47.3 >
