drm/amdgpu/swsmu: drop get_fan_speed_percent (v2)
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 27 Aug 2020 03:49:37 +0000 (23:49 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 3 Sep 2020 18:46:55 +0000 (14:46 -0400)
No longer needed as we can calculate it based on
the fan's max rpm.

v2: rework code to avoid possible uninitialized
variable use.

Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
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 787fc682e0a529a39f2a6c09c3de67b20f5f20f0..0ca997f83fb6d8de7fed06103425f39dabbbecff 100644 (file)
@@ -498,7 +498,6 @@ struct pptable_funcs {
        int (*notify_smc_display_config)(struct smu_context *smu);
        int (*set_cpu_power_state)(struct smu_context *smu);
        bool (*is_dpm_running)(struct smu_context *smu);
-       int (*get_fan_speed_percent)(struct smu_context *smu, uint32_t *speed);
        int (*get_fan_speed_rpm)(struct smu_context *smu, uint32_t *speed);
        int (*set_watermarks_table)(struct smu_context *smu,
                                    struct dm_pp_wm_sets_with_clock_ranges_soc15 *clock_ranges);
index 114e85613e24b90f9af2cabdca4e57a1340ef8fa..53e2051432bf0224d71902b057aacd70e8cd111a 100644 (file)
@@ -2192,17 +2192,25 @@ int smu_set_fan_control_mode(struct smu_context *smu, int value)
 int smu_get_fan_speed_percent(struct smu_context *smu, uint32_t *speed)
 {
        int ret = 0;
+       uint32_t percent;
+       uint32_t current_rpm;
 
        if (!smu->pm_enabled || !smu->adev->pm.dpm_enabled)
                return -EOPNOTSUPP;
 
        mutex_lock(&smu->mutex);
 
-       if (smu->ppt_funcs->get_fan_speed_percent)
-               ret = smu->ppt_funcs->get_fan_speed_percent(smu, speed);
+       if (smu->ppt_funcs->get_fan_speed_rpm) {
+               ret = smu->ppt_funcs->get_fan_speed_rpm(smu, &current_rpm);
+               if (!ret) {
+                       percent = current_rpm * 100 / smu->fan_max_rpm;
+                       *speed = percent > 100 ? 100 : percent;
+               }
+       }
 
        mutex_unlock(&smu->mutex);
 
+
        return ret;
 }
 
index 198fc1185b2dcc080580e28d02171992cb1dd1c7..1998e7916fefc3da132c93219558292a9725c6ac 100644 (file)
@@ -1128,26 +1128,6 @@ static int arcturus_get_fan_speed_rpm(struct smu_context *smu,
                                             speed);
 }
 
-static int arcturus_get_fan_speed_percent(struct smu_context *smu,
-                                         uint32_t *speed)
-{
-       PPTable_t *pptable = smu->smu_table.driver_pptable;
-       uint32_t percent, current_rpm;
-       int ret = 0;
-
-       if (!speed)
-               return -EINVAL;
-
-       ret = arcturus_get_fan_speed_rpm(smu, &current_rpm);
-       if (ret)
-               return ret;
-
-       percent = current_rpm * 100 / pptable->FanMaximumRpm;
-       *speed = percent > 100 ? 100 : percent;
-
-       return ret;
-}
-
 static int arcturus_get_fan_parameters(struct smu_context *smu)
 {
        PPTable_t *pptable = smu->smu_table.driver_pptable;
@@ -2338,7 +2318,6 @@ static const struct pptable_funcs arcturus_ppt_funcs = {
        .print_clk_levels = arcturus_print_clk_levels,
        .force_clk_levels = arcturus_force_clk_levels,
        .read_sensor = arcturus_read_sensor,
-       .get_fan_speed_percent = arcturus_get_fan_speed_percent,
        .get_fan_speed_rpm = arcturus_get_fan_speed_rpm,
        .get_power_profile_mode = arcturus_get_power_profile_mode,
        .set_power_profile_mode = arcturus_set_power_profile_mode,
index 3a9500dcb436ec8c9cdcfd4f2aaeb85640d127e9..d5c25e538a03fd9d47e009a5e853b994c7dbfaae 100644 (file)
@@ -1367,24 +1367,6 @@ static int navi10_get_fan_speed_rpm(struct smu_context *smu,
                                           speed);
 }
 
-static int navi10_get_fan_speed_percent(struct smu_context *smu,
-                                       uint32_t *speed)
-{
-       int ret = 0;
-       uint32_t percent = 0;
-       uint32_t current_rpm;
-       PPTable_t *pptable = smu->smu_table.driver_pptable;
-
-       ret = navi10_get_fan_speed_rpm(smu, &current_rpm);
-       if (ret)
-               return ret;
-
-       percent = current_rpm * 100 / pptable->FanMaximumRpm;
-       *speed = percent > 100 ? 100 : percent;
-
-       return ret;
-}
-
 static int navi10_get_fan_parameters(struct smu_context *smu)
 {
        PPTable_t *pptable = smu->smu_table.driver_pptable;
@@ -2606,7 +2588,6 @@ static const struct pptable_funcs navi10_ppt_funcs = {
        .display_config_changed = navi10_display_config_changed,
        .notify_smc_display_config = navi10_notify_smc_display_config,
        .is_dpm_running = navi10_is_dpm_running,
-       .get_fan_speed_percent = navi10_get_fan_speed_percent,
        .get_fan_speed_rpm = navi10_get_fan_speed_rpm,
        .get_power_profile_mode = navi10_get_power_profile_mode,
        .set_power_profile_mode = navi10_set_power_profile_mode,
index 2ac942b13bade1c5097de61b4fca52f2734f2eeb..97e54d382862b1af929296d02470c86de658a33d 100644 (file)
@@ -1174,24 +1174,6 @@ static int sienna_cichlid_get_fan_speed_rpm(struct smu_context *smu,
                                                   speed);
 }
 
-static int sienna_cichlid_get_fan_speed_percent(struct smu_context *smu,
-                                       uint32_t *speed)
-{
-       int ret = 0;
-       uint32_t percent = 0;
-       uint32_t current_rpm;
-       PPTable_t *pptable = smu->smu_table.driver_pptable;
-
-       ret = sienna_cichlid_get_fan_speed_rpm(smu, &current_rpm);
-       if (ret)
-               return ret;
-
-       percent = current_rpm * 100 / pptable->FanMaximumRpm;
-       *speed = percent > 100 ? 100 : percent;
-
-       return ret;
-}
-
 static int sienna_cichlid_get_fan_parameters(struct smu_context *smu)
 {
        PPTable_t *pptable = smu->smu_table.driver_pptable;
@@ -2753,7 +2735,6 @@ static const struct pptable_funcs sienna_cichlid_ppt_funcs = {
        .display_config_changed = sienna_cichlid_display_config_changed,
        .notify_smc_display_config = sienna_cichlid_notify_smc_display_config,
        .is_dpm_running = sienna_cichlid_is_dpm_running,
-       .get_fan_speed_percent = sienna_cichlid_get_fan_speed_percent,
        .get_fan_speed_rpm = sienna_cichlid_get_fan_speed_rpm,
        .get_power_profile_mode = sienna_cichlid_get_power_profile_mode,
        .set_power_profile_mode = sienna_cichlid_set_power_profile_mode,