On Wed, Mar 4, 2026 at 1:14 AM Wang, Yang(Kevin) <[email protected]> wrote:
>
> [AMD Official Use Only - AMD Internal Distribution Only]
>
> >> 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.
> https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c#L1871
>                 /*
>                  * The member below instructs PMFW the settings focused in
>                  * this single operation.
>                  * `uint32_t FeatureCtrlMask;`
>                  * It does not contain actual informations about user's custom
>                  * settings. Thus we do not cache it.
>                  */
> Please check above code comments first.
> And according to the current PMFW/OD feature design, all OD feature switch is 
> not located in 'FeatureCtrlMask'.
> If a certain bit is not set, PMFW will overwrite the values in OD using 
> either the default values in 'Default OverDriverTable built-in PMFW' or the 
> PPTable values.
> and all OD actual information data has been saved in the 'user_od_table' 
> structure before entering S3.
> Therefore, the Driver can safely configure these OD BITMASK directly without 
> additional checks in od restore stage.

Thanks for clarifying.  The patches are:
Acked-by: Alex Deucher <[email protected]>

>
> Best Regards,
> Kevin
>
> -----Original Message-----
> From: Alex Deucher <[email protected]>
> Sent: Wednesday, March 4, 2026 11:05 AM
> To: Wang, Yang(Kevin) <[email protected]>
> Cc: [email protected]; Deucher, Alexander 
> <[email protected]>; Zhang, Hawking <[email protected]>; Feng, 
> Kenneth <[email protected]>
> Subject: Re: [PATCH 1/2] drm/amd/pm: add missing od setting 
> PP_OD_FEATURE_ZERO_FAN_BIT for smu v13
>
> 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