]> Git Repo - linux.git/commitdiff
drm/amd/pm: Disable fan control if not supported
authorLijo Lazar <[email protected]>
Fri, 22 Oct 2021 07:35:25 +0000 (15:35 +0800)
committerAlex Deucher <[email protected]>
Fri, 22 Oct 2021 14:11:45 +0000 (10:11 -0400)
On arcturus, not all platforms use PMFW based fan control. On such
ASICs fan control by PMFW will be disabled in PPTable. Disable hwmon
knobs for fan control also as it is not possible to report or control
fan speed on such platforms through driver.

Signed-off-by: Lijo Lazar <[email protected]>
Reviewed-by: Alex Deucher <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c

index 082f01893f3d130ca660a937926e7e2b24376ea4..fd1d30a93db523399239e4df6ddcbd6891e41ea2 100644 (file)
@@ -436,6 +436,19 @@ static void arcturus_check_bxco_support(struct smu_context *smu)
        }
 }
 
+static void arcturus_check_fan_support(struct smu_context *smu)
+{
+       struct smu_table_context *table_context = &smu->smu_table;
+       PPTable_t *pptable = table_context->driver_pptable;
+
+       /* No sort of fan control possible if PPTable has it disabled */
+       smu->adev->pm.no_fan =
+               !(pptable->FeaturesToRun[0] & FEATURE_FAN_CONTROL_MASK);
+       if (smu->adev->pm.no_fan)
+               dev_info_once(smu->adev->dev,
+                             "PMFW based fan control disabled");
+}
+
 static int arcturus_check_powerplay_table(struct smu_context *smu)
 {
        struct smu_table_context *table_context = &smu->smu_table;
@@ -443,6 +456,7 @@ static int arcturus_check_powerplay_table(struct smu_context *smu)
                table_context->power_play_table;
 
        arcturus_check_bxco_support(smu);
+       arcturus_check_fan_support(smu);
 
        table_context->thermal_controller_type =
                powerplay_table->thermal_controller_type;
This page took 0.063424 seconds and 4 git commands to generate.