[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