[AMD Official Use Only] Yup, agreed, but I rationalized that it: - minimizes code changes, leave existing code in place - reinforces the comment, which states that only 0 is supported in this bitfield at this time
Thanks Darren ________________________________ From: Nils Wallménius <nils.wallmen...@gmail.com> Sent: Sunday, October 3, 2021 1:31 AM To: Powell, Darren <darren.pow...@amd.com> Cc: amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org> Subject: Re: [PATCH 2/3] drm/amd/pm: Fix incorrect power limit readback in smu11 if POWER_SOURCE_DC 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 <darren.pow...@amd.com<mailto:darren.pow...@amd.com>> 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 <darren.pow...@amd.com<mailto:darren.pow...@amd.com>> --- 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