On Fri, Sep 20, 2024 at 7:13 AM Kenneth Feng <kenneth.feng@xxxxxxx> 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@xxxxxxx> > Signed-off-by: Kenneth Feng <kenneth.feng@xxxxxxx> > --- > 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 >