drm/amd/powerplay: export a function to read fan rpm
authorGrazvydas Ignotas <notasas@gmail.com>
Sat, 29 Oct 2016 20:28:58 +0000 (23:28 +0300)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 11 Nov 2016 15:20:56 +0000 (10:20 -0500)
Powerplay hwmgr already has an implementation, all we need to do is to call it.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/amd_powerplay.c
drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h

index 0b1f2205c2f19958c1d0e98a3b03ce043dba543f..1f497647a920271ebe7b11b3fd1cbd47778ad643 100644 (file)
@@ -582,6 +582,23 @@ static int pp_dpm_get_fan_speed_percent(void *handle, uint32_t *speed)
        return hwmgr->hwmgr_func->get_fan_speed_percent(hwmgr, speed);
 }
 
+static int pp_dpm_get_fan_speed_rpm(void *handle, uint32_t *rpm)
+{
+       struct pp_hwmgr *hwmgr;
+
+       if (handle == NULL)
+               return -EINVAL;
+
+       hwmgr = ((struct pp_instance *)handle)->hwmgr;
+
+       PP_CHECK_HW(hwmgr);
+
+       if (hwmgr->hwmgr_func->get_fan_speed_rpm == NULL)
+               return -EINVAL;
+
+       return hwmgr->hwmgr_func->get_fan_speed_rpm(hwmgr, rpm);
+}
+
 static int pp_dpm_get_temperature(void *handle)
 {
        struct pp_hwmgr  *hwmgr;
@@ -852,6 +869,7 @@ const struct amd_powerplay_funcs pp_dpm_funcs = {
        .get_fan_control_mode = pp_dpm_get_fan_control_mode,
        .set_fan_speed_percent = pp_dpm_set_fan_speed_percent,
        .get_fan_speed_percent = pp_dpm_get_fan_speed_percent,
+       .get_fan_speed_rpm = pp_dpm_get_fan_speed_rpm,
        .get_pp_num_states = pp_dpm_get_pp_num_states,
        .get_pp_table = pp_dpm_get_pp_table,
        .set_pp_table = pp_dpm_set_pp_table,
index eb3e83d7af31ddbab734a9f199776396f937def7..2892b4e3948da2d197f0fa5eed5b0c44cb9ec01a 100644 (file)
@@ -349,6 +349,7 @@ struct amd_powerplay_funcs {
        int (*get_fan_control_mode)(void *handle);
        int (*set_fan_speed_percent)(void *handle, uint32_t percent);
        int (*get_fan_speed_percent)(void *handle, uint32_t *speed);
+       int (*get_fan_speed_rpm)(void *handle, uint32_t *rpm);
        int (*get_pp_num_states)(void *handle, struct pp_states_info *data);
        int (*get_pp_table)(void *handle, char **table);
        int (*set_pp_table)(void *handle, const char *buf, size_t size);