[PATCH] drm/amd/pm: update workload mask after the setting
Alex Deucher
alexdeucher at gmail.com
Tue Sep 24 15:44:53 UTC 2024
On Fri, Sep 20, 2024 at 7:13 AM Kenneth Feng <kenneth.feng at amd.com> wrote:
>
> update workload mask after the setting, to fix:
> https://gitlab.freedesktop.org/drm/amd/-/issues/3625
>
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3625
Acked-by: Alex Deucher <alexander.deucher at amd.com>
> Signed-off-by: Kenneth Feng <kenneth.feng at amd.com>
> ---
> drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 6 +++++-
> drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 3 +++
> drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c | 6 +++++-
> 3 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
> index a887ab945dfa..1d024b122b0c 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
> @@ -2569,10 +2569,14 @@ static int smu_v13_0_0_set_power_profile_mode(struct smu_context *smu,
> }
> }
>
> - return smu_cmn_send_smc_msg_with_param(smu,
> + ret = smu_cmn_send_smc_msg_with_param(smu,
> SMU_MSG_SetWorkloadMask,
> workload_mask,
> NULL);
> + if (!ret)
> + smu->workload_mask = workload_mask;
> +
> + return ret;
> }
>
> static bool smu_v13_0_0_is_mode1_reset_supported(struct smu_context *smu)
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
> index 7bc95c404377..b891a5e0a396 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
> @@ -2501,8 +2501,11 @@ static int smu_v13_0_7_set_power_profile_mode(struct smu_context *smu, long *inp
> return -EINVAL;
> ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetWorkloadMask,
> 1 << workload_type, NULL);
> +
> if (ret)
> dev_err(smu->adev->dev, "[%s] Failed to set work load mask!", __func__);
> + else
> + smu->workload_mask = (1 << workload_type);
>
> return ret;
> }
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c
> index 43820d7d2c54..5899d01fa73d 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c
> @@ -1861,10 +1861,14 @@ static int smu_v14_0_2_set_power_profile_mode(struct smu_context *smu,
> if (workload_type < 0)
> return -EINVAL;
>
> - return smu_cmn_send_smc_msg_with_param(smu,
> + ret = smu_cmn_send_smc_msg_with_param(smu,
> SMU_MSG_SetWorkloadMask,
> 1 << workload_type,
> NULL);
> + if (!ret)
> + smu->workload_mask = 1 << workload_type;
> +
> + return ret;
> }
>
> static int smu_v14_0_2_baco_enter(struct smu_context *smu)
> --
> 2.34.1
>
More information about the amd-gfx
mailing list