Hi, sorry for the drive-by comment but limit_param |= 0 << 24; Doesn't do anything. Best regards Nils Den sön 3 okt. 2021 06:47Darren Powell skrev: > when smu->adev->pm.ac_power == 0, message parameter with bit 16 set is > saved > to smu->current_power_limit. > > Fixes: 0cb4c62125a9 ("drm/amd/pm: correct power limit setting for SMU > V11)" > > Signed-off-by: Darren Powell > --- > drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c > b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c > index aedaa4bb15c2..9bb6da99d5b5 100644 > --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c > @@ -984,6 +984,7 @@ int smu_v11_0_set_power_limit(struct smu_context *smu, > { > int power_src; > int ret = 0; > + uint32_t limit_param; > > if (!smu_cmn_feature_is_enabled(smu, SMU_FEATURE_PPT_BIT)) { > dev_err(smu->adev->dev, "Setting new power limit is not > supported!\n"); > @@ -1003,10 +1004,10 @@ int smu_v11_0_set_power_limit(struct smu_context > *smu, > * BIT 16-23: PowerSource > * BIT 0-15: PowerLimit > */ > - limit &= 0xFFFF; > - limit |= 0 << 24; > - limit |= (power_src) << 16; > - ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetPptLimit, > limit, NULL); > + limit_param = (limit & 0xFFFF); > + limit_param |= 0 << 24; > + limit_param |= (power_src) << 16; > + ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetPptLimit, > limit_param, NULL); > if (ret) { > dev_err(smu->adev->dev, "[%s] Set power limit Failed!\n", > __func__); > return ret; > -- > 2.33.0 > >