mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
drm/amd/pm: remove invalid gpu_metrics.energy_accumulator on smu v13.0.x
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 <kevinyang.wang@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
a4f87a1c30
commit
8de9edb359
|
|
@ -2034,6 +2034,7 @@ static ssize_t smu_v13_0_0_get_gpu_metrics(struct smu_context *smu,
|
||||||
smu, SMU_DRIVER_TABLE_GPU_METRICS);
|
smu, SMU_DRIVER_TABLE_GPU_METRICS);
|
||||||
SmuMetricsExternal_t metrics_ext;
|
SmuMetricsExternal_t metrics_ext;
|
||||||
SmuMetrics_t *metrics = &metrics_ext.SmuMetrics;
|
SmuMetrics_t *metrics = &metrics_ext.SmuMetrics;
|
||||||
|
uint32_t mp1_ver = amdgpu_ip_version(smu->adev, MP1_HWIP, 0);
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
ret = smu_cmn_get_metrics_table(smu,
|
ret = smu_cmn_get_metrics_table(smu,
|
||||||
|
|
@ -2058,7 +2059,12 @@ static ssize_t smu_v13_0_0_get_gpu_metrics(struct smu_context *smu,
|
||||||
metrics->Vcn1ActivityPercentage);
|
metrics->Vcn1ActivityPercentage);
|
||||||
|
|
||||||
gpu_metrics->average_socket_power = metrics->AverageSocketPower;
|
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)
|
if (metrics->AverageGfxActivity <= SMU_13_0_0_BUSY_THRESHOLD)
|
||||||
gpu_metrics->average_gfxclk_frequency = metrics->AverageGfxclkFrequencyPostDs;
|
gpu_metrics->average_gfxclk_frequency = metrics->AverageGfxclkFrequencyPostDs;
|
||||||
|
|
|
||||||
|
|
@ -2065,7 +2065,8 @@ static ssize_t smu_v13_0_7_get_gpu_metrics(struct smu_context *smu,
|
||||||
metrics->Vcn1ActivityPercentage);
|
metrics->Vcn1ActivityPercentage);
|
||||||
|
|
||||||
gpu_metrics->average_socket_power = metrics->AverageSocketPower;
|
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)
|
if (metrics->AverageGfxActivity <= SMU_13_0_7_BUSY_THRESHOLD)
|
||||||
gpu_metrics->average_gfxclk_frequency = metrics->AverageGfxclkFrequencyPostDs;
|
gpu_metrics->average_gfxclk_frequency = metrics->AverageGfxclkFrequencyPostDs;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user