[AMD Official Use Only - General] Reviewed-by: Evan Quan <evan.quan@xxxxxxx> > -----Original Message----- > From: Umio Yasuno <coelacanth_dream@xxxxxxxxxxxxxx> > Sent: Tuesday, August 8, 2023 2:41 PM > To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Quan, Evan > <Evan.Quan@xxxxxxx>; Limonciello, Mario <Mario.Limonciello@xxxxxxx> > Subject: [PATCH] fix throttle_status for other than MP0 11.0.7 > > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2720 > Signed-off-by: Umio Yasuno <coelacanth_dream@xxxxxxxxxxxxxx> > --- > .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > index 85d53597e..548d25cf3 100644 > --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c > @@ -578,7 +578,9 @@ static int sienna_cichlid_tables_init(struct > smu_context *smu) > return -ENOMEM; > } > > -static uint32_t sienna_cichlid_get_throttler_status_locked(struct > smu_context *smu) > +static uint32_t sienna_cichlid_get_throttler_status_locked(struct > smu_context *smu, > + bool > use_metrics_v3, > + bool > use_metrics_v2) > { > struct smu_table_context *smu_table= &smu->smu_table; > SmuMetricsExternal_t *metrics_ext = > @@ -586,13 +588,11 @@ static uint32_t > sienna_cichlid_get_throttler_status_locked(struct smu_context *s > uint32_t throttler_status = 0; > int i; > > - if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) > && > - (smu->smc_fw_version >= 0x3A4900)) { > + if (use_metrics_v3) { > for (i = 0; i < THROTTLER_COUNT; i++) > throttler_status |= > (metrics_ext- > >SmuMetrics_V3.ThrottlingPercentage[i] ? 1U << i : 0); > - } else if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, > 0, 7)) && > - (smu->smc_fw_version >= 0x3A4300)) { > + } else if (use_metrics_v2) { > for (i = 0; i < THROTTLER_COUNT; i++) > throttler_status |= > (metrics_ext- > >SmuMetrics_V2.ThrottlingPercentage[i] ? 1U << i : 0); > @@ -854,7 +854,7 @@ static int sienna_cichlid_get_smu_metrics_data(struct > smu_context *smu, > metrics->TemperatureVrSoc) * > SMU_TEMPERATURE_UNITS_PER_CENTIGRADES; > break; > case METRICS_THROTTLER_STATUS: > - *value = sienna_cichlid_get_throttler_status_locked(smu); > + *value = sienna_cichlid_get_throttler_status_locked(smu, > use_metrics_v3, use_metrics_v2); > break; > case METRICS_CURR_FANSPEED: > *value = use_metrics_v3 ? metrics_v3->CurrFanSpeed : > @@ -4056,7 +4056,7 @@ static ssize_t > sienna_cichlid_get_gpu_metrics(struct smu_context *smu, > gpu_metrics->current_dclk1 = use_metrics_v3 ? metrics_v3- > >CurrClock[PPCLK_DCLK_1] : > use_metrics_v2 ? metrics_v2->CurrClock[PPCLK_DCLK_1] : > metrics->CurrClock[PPCLK_DCLK_1]; > > - gpu_metrics->throttle_status = > sienna_cichlid_get_throttler_status_locked(smu); > + gpu_metrics->throttle_status = > sienna_cichlid_get_throttler_status_locked(smu, use_metrics_v3, > use_metrics_v2); > gpu_metrics->indep_throttle_status = > smu_cmn_get_indep_throttler_status(gpu_metrics- > >throttle_status, > > sienna_cichlid_throttler_map); > -- > 2.40.1 >