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);
 
 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, ¤t_rpm);
+               if (!ret) {
+                       percent = current_rpm * 100 / smu->fan_max_rpm;
+                       *speed = percent > 100 ? 100 : percent;
+               }
+       }
 
        mutex_unlock(&smu->mutex);
 
+
        return ret;
 }
 
 
                                             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, ¤t_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;
        .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,
 
                                           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, ¤t_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;
        .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,
 
                                                   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, ¤t_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;
        .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,