On Tue, Mar 3, 2026 at 9:48 PM Yang Wang <[email protected]> wrote:
>
> add missing od setting PP_OD_FEATURE_ZERO_FAN_BIT for smu v13.0.0/13.0.7
>
> Fixes: cfffd980bf21 ("drm/amd/pm: add zero RPM OD setting support for SMU13")
> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/5018
>
> Signed-off-by: Yang Wang <[email protected]>
> ---
>  drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 3 ++-
>  drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 3 ++-
>  2 files changed, 4 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 35d36f2fe7dd..0a7307f5eb4c 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
> @@ -2223,7 +2223,8 @@ static int smu_v13_0_0_restore_user_od_settings(struct 
> smu_context *smu)
>         user_od_table->OverDriveTable.FeatureCtrlMask = 
> BIT(PP_OD_FEATURE_GFXCLK_BIT) |
>                                                         
> BIT(PP_OD_FEATURE_UCLK_BIT) |
>                                                         
> BIT(PP_OD_FEATURE_GFX_VF_CURVE_BIT) |
> -                                                       
> BIT(PP_OD_FEATURE_FAN_CURVE_BIT);
> +                                                       
> BIT(PP_OD_FEATURE_FAN_CURVE_BIT) |
> +                                                       
> BIT(PP_OD_FEATURE_ZERO_FAN_BIT);

Is it ok to always set these, or should they only be restored based on
the user's settings?  Same question for the existing feature bits.

Alex

>         res = smu_v13_0_0_upload_overdrive_table(smu, user_od_table);
>         user_od_table->OverDriveTable.FeatureCtrlMask = 0;
>         if (res == 0)
> 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 4f729f54a64c..fa23f3d4a3fd 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
> @@ -2225,7 +2225,8 @@ static int smu_v13_0_7_restore_user_od_settings(struct 
> smu_context *smu)
>         user_od_table->OverDriveTable.FeatureCtrlMask = 
> BIT(PP_OD_FEATURE_GFXCLK_BIT) |
>                                                         
> BIT(PP_OD_FEATURE_UCLK_BIT) |
>                                                         
> BIT(PP_OD_FEATURE_GFX_VF_CURVE_BIT) |
> -                                                       
> BIT(PP_OD_FEATURE_FAN_CURVE_BIT);
> +                                                       
> BIT(PP_OD_FEATURE_FAN_CURVE_BIT) |
> +                                                       
> BIT(PP_OD_FEATURE_ZERO_FAN_BIT);
>         res = smu_v13_0_7_upload_overdrive_table(smu, user_od_table);
>         user_od_table->OverDriveTable.FeatureCtrlMask = 0;
>         if (res == 0)
> --
> 2.47.3
>

Reply via email to