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> 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>
> ---
>  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
>
>

Reply via email to