On 8/9/2023 6:07 PM, Alex Deucher wrote:
On Wed, Aug 9, 2023 at 8:28 AM Lazar, Lijo <[email protected]> wrote:



On 8/9/2023 5:50 PM, Alex Deucher wrote:
On Wed, Aug 9, 2023 at 6:12 AM Kenneth Feng <[email protected]> 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 <[email protected]>

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.

Yes, not the overdrive related control :)

        Reviewed-by: Lijo Lazar <[email protected]>

Thanks,
Lijo


Reviewed-by: Alex Deucher <[email protected]>

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

Reply via email to