Reviewed-by: Alex Deucher <[email protected]>
On Thu, Jan 12, 2023 at 9:11 PM Liu, Aaron <[email protected]> wrote: > > Reviewed-by: Aaron Liu [email protected] > > > > From: amd-gfx <[email protected]> On Behalf Of Zhang, > Jesse(Jie) > Sent: Friday, January 13, 2023 10:07 AM > To: Deucher, Alexander <[email protected]> > Cc: [email protected] > Subject: [PATCH] drm/amdgpu: Renoir/Cezanne GPU power reporting issue > > > > [AMD Official Use Only - General] > > > > > > drm/amdgpu: Correct the power calcultion for Renior/Cezanne. > > From smu firmware,the value of power is transferred in units of watts. > > Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2321 > > Fixes: 137aac26a2ed ("drm/amdgpu/smu12: fix power reporting on renoir") > > > > Acked-by: Alex Deucher [email protected] > > Signed-off-by: Jesse Zhang [email protected] > > > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c > b/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c > > index 85e22210963f..96a49a3b3ad9 100644 > > --- a/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c > > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c > > @@ -1171,6 +1171,7 @@ static int renoir_get_smu_metrics_data(struct > smu_context *smu, > > int ret = 0; > > uint32_t apu_percent = 0; > > uint32_t dgpu_percent = 0; > > + struct amdgpu_device *adev = smu->adev; > > > > > > ret = smu_cmn_get_metrics_table(smu, > > @@ -1196,7 +1197,11 @@ static int renoir_get_smu_metrics_data(struct > smu_context *smu, > > *value = metrics->AverageUvdActivity / 100; > > break; > > case METRICS_AVERAGE_SOCKETPOWER: > > - *value = (metrics->CurrentSocketPower << 8) / 1000; > > + if (((adev->ip_versions[MP1_HWIP][0] == IP_VERSION(12, 0, 1)) > && (adev->pm.fw_version >= 0x40000f)) > > + || ((adev->ip_versions[MP1_HWIP][0] == IP_VERSION(12, > 0, 0)) && (adev->pm.fw_version >= 0x373200))) > > + *value = metrics->CurrentSocketPower << 8; > > + else > > + *value = (metrics->CurrentSocketPower << 8) / 1000; > > break; > > case METRICS_TEMPERATURE_EDGE: > > *value = (metrics->GfxTemperature / 100) *
