[PATCH] fix throttle_status for other than MP0 11.0.7
Quan, Evan
Evan.Quan at amd.com
Tue Aug 8 08:38:22 UTC 2023
[AMD Official Use Only - General]
Reviewed-by: Evan Quan <evan.quan at amd.com>
> -----Original Message-----
> From: Umio Yasuno <coelacanth_dream at protonmail.com>
> Sent: Tuesday, August 8, 2023 2:41 PM
> To: amd-gfx at lists.freedesktop.org
> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Quan, Evan
> <Evan.Quan at amd.com>; Limonciello, Mario <Mario.Limonciello at amd.com>
> 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 at protonmail.com>
> ---
> .../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
>
More information about the amd-gfx
mailing list