[PATCH] drm/amd/swsmu: modify the gfx activity scaling

Alex Deucher alexdeucher at gmail.com
Wed Feb 28 14:25:26 UTC 2024


On Wed, Feb 28, 2024 at 6:39 AM Li Ma <li.ma at amd.com> wrote:
>
> Add an if condition for gfx activity because the scaling has been changed after smu fw version 5d4600.
> And remove a warning log.
>
> Signed-off-by: Li Ma <li.ma at amd.com>

Acked-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c       | 2 --
>  drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c | 5 ++++-
>  2 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c
> index 2aa7e9945a0b..7ac9bc0df8fd 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c
> @@ -229,8 +229,6 @@ int smu_v14_0_check_fw_version(struct smu_context *smu)
>                 smu->smc_driver_if_version = SMU14_DRIVER_IF_VERSION_SMU_V14_0_2;
>                 break;
>         case IP_VERSION(14, 0, 0):
> -               if ((smu->smc_fw_version < 0x5d3a00))
> -                       dev_warn(smu->adev->dev, "The PMFW version(%x) is behind in this BIOS!\n", smu->smc_fw_version);
>                 smu->smc_driver_if_version = SMU14_DRIVER_IF_VERSION_SMU_V14_0_0;
>                 break;
>         default:
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c
> index 47fdbae4adfc..9310c4758e38 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c
> @@ -261,7 +261,10 @@ static int smu_v14_0_0_get_smu_metrics_data(struct smu_context *smu,
>                 *value = metrics->MpipuclkFrequency;
>                 break;
>         case METRICS_AVERAGE_GFXACTIVITY:
> -               *value = metrics->GfxActivity / 100;
> +               if ((smu->smc_fw_version > 0x5d4600))
> +                       *value = metrics->GfxActivity;
> +               else
> +                       *value = metrics->GfxActivity / 100;
>                 break;
>         case METRICS_AVERAGE_VCNACTIVITY:
>                 *value = metrics->VcnActivity / 100;
> --
> 2.25.1
>


More information about the amd-gfx mailing list