]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/amdgpu/swsmu: add get_fan_parameters callbacks for smu11 asics
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 27 Aug 2020 03:34:57 +0000 (23:34 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 3 Sep 2020 18:46:55 +0000 (14:46 -0400)
grab the value from the pptable.

Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c

index 59b245c6c4d7b53f9a2335642163794fde9479ff..198fc1185b2dcc080580e28d02171992cb1dd1c7 100644 (file)
@@ -1148,6 +1148,15 @@ static int arcturus_get_fan_speed_percent(struct smu_context *smu,
        return ret;
 }
 
+static int arcturus_get_fan_parameters(struct smu_context *smu)
+{
+       PPTable_t *pptable = smu->smu_table.driver_pptable;
+
+       smu->fan_max_rpm = pptable->FanMaximumRpm;
+
+       return 0;
+}
+
 static int arcturus_get_power_limit(struct smu_context *smu)
 {
        struct smu_11_0_powerplay_table *powerplay_table =
@@ -2397,6 +2406,7 @@ static const struct pptable_funcs arcturus_ppt_funcs = {
        .get_gpu_metrics = arcturus_get_gpu_metrics,
        .gfx_ulv_control = smu_v11_0_gfx_ulv_control,
        .deep_sleep_control = smu_v11_0_deep_sleep_control,
+       .get_fan_parameters = arcturus_get_fan_parameters,
 };
 
 void arcturus_set_ppt_funcs(struct smu_context *smu)
index cc67d5c60f3d0e20967306b61f1bca2e30369aa7..3a9500dcb436ec8c9cdcfd4f2aaeb85640d127e9 100644 (file)
@@ -1385,6 +1385,15 @@ static int navi10_get_fan_speed_percent(struct smu_context *smu,
        return ret;
 }
 
+static int navi10_get_fan_parameters(struct smu_context *smu)
+{
+       PPTable_t *pptable = smu->smu_table.driver_pptable;
+
+       smu->fan_max_rpm = pptable->FanMaximumRpm;
+
+       return 0;
+}
+
 static int navi10_get_power_profile_mode(struct smu_context *smu, char *buf)
 {
        DpmActivityMonitorCoeffInt_t activity_monitor;
@@ -2666,6 +2675,7 @@ static const struct pptable_funcs navi10_ppt_funcs = {
        .enable_mgpu_fan_boost = navi10_enable_mgpu_fan_boost,
        .gfx_ulv_control = smu_v11_0_gfx_ulv_control,
        .deep_sleep_control = smu_v11_0_deep_sleep_control,
+       .get_fan_parameters = navi10_get_fan_parameters,
 };
 
 void navi10_set_ppt_funcs(struct smu_context *smu)
index b67931fd64b4a3351738150c51ddcad7a309319f..2ac942b13bade1c5097de61b4fca52f2734f2eeb 100644 (file)
@@ -1192,6 +1192,15 @@ static int sienna_cichlid_get_fan_speed_percent(struct smu_context *smu,
        return ret;
 }
 
+static int sienna_cichlid_get_fan_parameters(struct smu_context *smu)
+{
+       PPTable_t *pptable = smu->smu_table.driver_pptable;
+
+       smu->fan_max_rpm = pptable->FanMaximumRpm;
+
+       return 0;
+}
+
 static int sienna_cichlid_get_power_profile_mode(struct smu_context *smu, char *buf)
 {
        DpmActivityMonitorCoeffInt_t activity_monitor;
@@ -2811,6 +2820,7 @@ static const struct pptable_funcs sienna_cichlid_ppt_funcs = {
        .enable_mgpu_fan_boost = sienna_cichlid_enable_mgpu_fan_boost,
        .gfx_ulv_control = smu_v11_0_gfx_ulv_control,
        .deep_sleep_control = smu_v11_0_deep_sleep_control,
+       .get_fan_parameters = sienna_cichlid_get_fan_parameters,
 };
 
 void sienna_cichlid_set_ppt_funcs(struct smu_context *smu)