[PATCH v2] drm/amd/pm: disallow the fan setting if there is no fan on smu 13.0.0

Alex Deucher alexdeucher at gmail.com
Wed Aug 9 12:37:16 UTC 2023


On Wed, Aug 9, 2023 at 8:28 AM Lazar, Lijo <lijo.lazar at amd.com> wrote:
>
>
>
> On 8/9/2023 5:50 PM, Alex Deucher wrote:
> > On Wed, Aug 9, 2023 at 6:12 AM Kenneth Feng <kenneth.feng at amd.com> wrote:
> >>
> >> drm/amd/pm: disallow the fan setting if there is no fan on smu 13.0.0
> >> V2: depend on pm.no_fan to check
> >>
> >> Signed-off-by: Kenneth Feng <kenneth.feng at amd.com>
> >
> > You can still read the fan speed though right?  Don't we want to just
> > not expose the ability to manually set the fan speed?
>
> If PMFW is not controlling fan, there is no guarantee that the cooling
> solution (any other external one) is using GPU's fan controller itself.
> In that way, reading the speed from controller doesn't make sense.
>

Ah, ok, I misunderstood.  My brain isn't working yet.  This is for the
case of the PMFW not controlling the fan.

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> Thanks,
> Lijo
>
> >
> > Alex
> >
> >> ---
> >>   drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 4 ++++
> >>   1 file changed, 4 insertions(+)
> >>
> >> 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 fddcd834bcec..0fb6be11a0cc 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
> >> @@ -331,6 +331,7 @@ static int smu_v13_0_0_check_powerplay_table(struct smu_context *smu)
> >>          struct smu_13_0_0_powerplay_table *powerplay_table =
> >>                  table_context->power_play_table;
> >>          struct smu_baco_context *smu_baco = &smu->smu_baco;
> >> +       PPTable_t *pptable = smu->smu_table.driver_pptable;
> >>   #if 0
> >>          PPTable_t *pptable = smu->smu_table.driver_pptable;
> >>          const OverDriveLimits_t * const overdrive_upperlimits =
> >> @@ -371,6 +372,9 @@ static int smu_v13_0_0_check_powerplay_table(struct smu_context *smu)
> >>          table_context->thermal_controller_type =
> >>                  powerplay_table->thermal_controller_type;
> >>
> >> +       smu->adev->pm.no_fan =
> >> +               !(pptable->SkuTable.FeaturesToRun[0] & (1 << FEATURE_FAN_CONTROL_BIT));
> >> +
> >>          return 0;
> >>   }
> >>
> >> --
> >> 2.34.1
> >>


More information about the amd-gfx mailing list