diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/1045-drm-amd-powerplay-refine-code-for-thermal-control-in.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/1045-drm-amd-powerplay-refine-code-for-thermal-control-in.patch | 595 |
1 files changed, 595 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/1045-drm-amd-powerplay-refine-code-for-thermal-control-in.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/1045-drm-amd-powerplay-refine-code-for-thermal-control-in.patch new file mode 100644 index 00000000..72afaee4 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/1045-drm-amd-powerplay-refine-code-for-thermal-control-in.patch @@ -0,0 +1,595 @@ +From 838ec1d192d82fbcc04ad8000cbd54ee7eeb7fae Mon Sep 17 00:00:00 2001 +From: Rex Zhu <Rex.Zhu@amd.com> +Date: Mon, 4 Sep 2017 16:25:48 +0800 +Subject: [PATCH 1045/4131] drm/amd/powerplay: refine code for thermal control + in powerplay + +add function point start_thermal_controller in hwmgr, +delete thermal function table and related functions + +Change-Id: I7616df3bcf2d6bddb5577f882ace2caa63e862bf +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> +--- + .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 6 +- + drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 1 + + drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 4 +- + drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.c | 146 +++------------------ + drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.h | 5 +- + drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 2 +- + .../gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c | 137 +++---------------- + .../gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h | 13 +- + drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 3 +- + drivers/gpu/drm/amd/powerplay/inc/smumgr.h | 6 +- + drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c | 6 +- + 11 files changed, 55 insertions(+), 274 deletions(-) + +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c b/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c +index ce378bd..a3991c0 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c +@@ -306,8 +306,10 @@ int phm_start_thermal_controller(struct pp_hwmgr *hwmgr, struct PP_TemperatureRa + range.min = temperature_range->min; + } + if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, +- PHM_PlatformCaps_ThermalController)) +- return phm_dispatch_table(hwmgr, &(hwmgr->start_thermal_controller), &range, NULL); ++ PHM_PlatformCaps_ThermalController) ++ && hwmgr->hwmgr_func->start_thermal_controller != NULL) ++ return hwmgr->hwmgr_func->start_thermal_controller(hwmgr, &range); ++ + return 0; + } + +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c +index 4f1b932..387d0b6 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c +@@ -73,6 +73,7 @@ int hwmgr_early_init(struct pp_instance *handle) + hwmgr->dpm_level = AMD_DPM_FORCED_LEVEL_AUTO; + hwmgr_init_default_caps(hwmgr); + hwmgr_set_user_specify_caps(hwmgr); ++ hwmgr->fan_ctrl_is_in_default_mode = true; + + switch (hwmgr->chip_family) { + case AMDGPU_FAMILY_CZ: +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c +index 812c67f..99a233c 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c +@@ -2284,7 +2284,6 @@ static int smu7_hwmgr_backend_fini(struct pp_hwmgr *hwmgr) + { + kfree(hwmgr->dyn_state.vddc_dep_on_dal_pwrl); + hwmgr->dyn_state.vddc_dep_on_dal_pwrl = NULL; +- pp_smu7_thermal_fini(hwmgr); + kfree(hwmgr->backend); + hwmgr->backend = NULL; + +@@ -2301,8 +2300,6 @@ static int smu7_hwmgr_backend_init(struct pp_hwmgr *hwmgr) + return -ENOMEM; + + hwmgr->backend = data; +- pp_smu7_thermal_initialize(hwmgr); +- + smu7_patch_voltage_workaround(hwmgr); + smu7_init_dpm_defaults(hwmgr); + +@@ -4657,6 +4654,7 @@ static const struct pp_hwmgr_func smu7_hwmgr_funcs = { + .set_power_profile_state = smu7_set_power_profile_state, + .avfs_control = smu7_avfs_control, + .disable_smc_firmware_ctf = smu7_thermal_disable_alert, ++ .start_thermal_controller = smu7_start_thermal_controller, + }; + + uint8_t smu7_get_sleep_divider_id_from_clock(uint32_t clock, +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.c +index a457b88..10e12b2 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.c +@@ -360,7 +360,7 @@ static int smu7_thermal_initialize(struct pp_hwmgr *hwmgr) + * + * @param hwmgr The address of the hardware manager. + */ +-int smu7_thermal_enable_alert(struct pp_hwmgr *hwmgr) ++static void smu7_thermal_enable_alert(struct pp_hwmgr *hwmgr) + { + uint32_t alert; + +@@ -371,7 +371,7 @@ int smu7_thermal_enable_alert(struct pp_hwmgr *hwmgr) + CG_THERMAL_INT, THERM_INT_MASK, alert); + + /* send message to SMU to enable internal thermal interrupts */ +- return smum_send_msg_to_smc(hwmgr->smumgr, PPSMC_MSG_Thermal_Cntl_Enable); ++ smum_send_msg_to_smc(hwmgr->smumgr, PPSMC_MSG_Thermal_Cntl_Enable); + } + + /** +@@ -416,8 +416,7 @@ int smu7_thermal_stop_thermal_controller(struct pp_hwmgr *hwmgr) + * @param Result the last failure code + * @return result from set temperature range routine + */ +-static int tf_smu7_thermal_start_smc_fan_control(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) ++static int smu7_thermal_start_smc_fan_control(struct pp_hwmgr *hwmgr) + { + /* If the fantable setup has failed we could have disabled + * PHM_PlatformCaps_MicrocodeFanControl even after +@@ -432,108 +431,34 @@ static int tf_smu7_thermal_start_smc_fan_control(struct pp_hwmgr *hwmgr, + return 0; + } + +-/** +-* Set temperature range for high and low alerts +-* @param hwmgr the address of the powerplay hardware manager. +-* @param pInput the pointer to input data +-* @param pOutput the pointer to output data +-* @param pStorage the pointer to temporary storage +-* @param Result the last failure code +-* @return result from set temperature range routine +-*/ +-static int tf_smu7_thermal_set_temperature_range(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) ++int smu7_start_thermal_controller(struct pp_hwmgr *hwmgr, ++ struct PP_TemperatureRange *range) + { +- struct PP_TemperatureRange *range = (struct PP_TemperatureRange *)input; ++ int ret = 0; + + if (range == NULL) + return -EINVAL; + +- return smu7_thermal_set_temperature_range(hwmgr, range->min, range->max); +-} +- +-/** +-* Programs one-time setting registers +-* @param hwmgr the address of the powerplay hardware manager. +-* @param pInput the pointer to input data +-* @param pOutput the pointer to output data +-* @param pStorage the pointer to temporary storage +-* @param Result the last failure code +-* @return result from initialize thermal controller routine +-*/ +-static int tf_smu7_thermal_initialize(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) +-{ +- return smu7_thermal_initialize(hwmgr); +-} +- +-/** +-* Enable high and low alerts +-* @param hwmgr the address of the powerplay hardware manager. +-* @param pInput the pointer to input data +-* @param pOutput the pointer to output data +-* @param pStorage the pointer to temporary storage +-* @param Result the last failure code +-* @return result from enable alert routine +-*/ +-static int tf_smu7_thermal_enable_alert(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) +-{ +- return smu7_thermal_enable_alert(hwmgr); +-} +- +-/** +-* Disable high and low alerts +-* @param hwmgr the address of the powerplay hardware manager. +-* @param pInput the pointer to input data +-* @param pOutput the pointer to output data +-* @param pStorage the pointer to temporary storage +-* @param Result the last failure code +-* @return result from disable alert routine +-*/ +-static int tf_smu7_thermal_disable_alert(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) +-{ +- return smu7_thermal_disable_alert(hwmgr); +-} ++ smu7_thermal_initialize(hwmgr); ++ ret = smu7_thermal_set_temperature_range(hwmgr, range->min, range->max); ++ if (ret) ++ return -EINVAL; ++ smu7_thermal_enable_alert(hwmgr); ++ ret = smum_thermal_avfs_enable(hwmgr); ++ if (ret) ++ return -EINVAL; + +-static const struct phm_master_table_item +-phm_thermal_start_thermal_controller_master_list[] = { +- { .tableFunction = tf_smu7_thermal_initialize }, +- { .tableFunction = tf_smu7_thermal_set_temperature_range }, +- { .tableFunction = tf_smu7_thermal_enable_alert }, +- { .tableFunction = smum_thermal_avfs_enable }, + /* We should restrict performance levels to low before we halt the SMC. + * On the other hand we are still in boot state when we do this + * so it would be pointless. + * If this assumption changes we have to revisit this table. + */ +- { .tableFunction = smum_thermal_setup_fan_table }, +- { .tableFunction = tf_smu7_thermal_start_smc_fan_control }, +- { } +-}; +- +-static const struct phm_master_table_header +-phm_thermal_start_thermal_controller_master = { +- 0, +- PHM_MasterTableFlag_None, +- phm_thermal_start_thermal_controller_master_list +-}; +- +-static const struct phm_master_table_item +-phm_thermal_set_temperature_range_master_list[] = { +- { .tableFunction = tf_smu7_thermal_disable_alert }, +- { .tableFunction = tf_smu7_thermal_set_temperature_range }, +- { .tableFunction = tf_smu7_thermal_enable_alert }, +- { } +-}; +- +-static const struct phm_master_table_header +-phm_thermal_set_temperature_range_master = { +- 0, +- PHM_MasterTableFlag_None, +- phm_thermal_set_temperature_range_master_list +-}; ++ smum_thermal_setup_fan_table(hwmgr); ++ smu7_thermal_start_smc_fan_control(hwmgr); ++ return 0; ++} ++ ++ + + int smu7_thermal_ctrl_uninitialize_thermal_controller(struct pp_hwmgr *hwmgr) + { +@@ -542,34 +467,3 @@ int smu7_thermal_ctrl_uninitialize_thermal_controller(struct pp_hwmgr *hwmgr) + return 0; + } + +-/** +-* Initializes the thermal controller related functions in the Hardware Manager structure. +-* @param hwmgr The address of the hardware manager. +-* @exception Any error code from the low-level communication. +-*/ +-int pp_smu7_thermal_initialize(struct pp_hwmgr *hwmgr) +-{ +- int result; +- +- result = phm_construct_table(hwmgr, +- &phm_thermal_set_temperature_range_master, +- &(hwmgr->set_temperature_range)); +- +- if (!result) { +- result = phm_construct_table(hwmgr, +- &phm_thermal_start_thermal_controller_master, +- &(hwmgr->start_thermal_controller)); +- if (result) +- phm_destroy_table(hwmgr, &(hwmgr->set_temperature_range)); +- } +- +- if (!result) +- hwmgr->fan_ctrl_is_in_default_mode = true; +- return result; +-} +- +-void pp_smu7_thermal_fini(struct pp_hwmgr *hwmgr) +-{ +- phm_destroy_table(hwmgr, &(hwmgr->set_temperature_range)); +- phm_destroy_table(hwmgr, &(hwmgr->start_thermal_controller)); +-} +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.h b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.h +index ba71b60..42c1ba0 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.h ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_thermal.h +@@ -46,14 +46,13 @@ extern int smu7_fan_ctrl_set_default_mode(struct pp_hwmgr *hwmgr); + extern int smu7_fan_ctrl_set_static_mode(struct pp_hwmgr *hwmgr, uint32_t mode); + extern int smu7_fan_ctrl_set_fan_speed_percent(struct pp_hwmgr *hwmgr, uint32_t speed); + extern int smu7_fan_ctrl_reset_fan_speed_to_default(struct pp_hwmgr *hwmgr); +-extern int pp_smu7_thermal_initialize(struct pp_hwmgr *hwmgr); +-extern void pp_smu7_thermal_fini(struct pp_hwmgr *hwmgr); + extern int smu7_thermal_ctrl_uninitialize_thermal_controller(struct pp_hwmgr *hwmgr); + extern int smu7_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed); + extern int smu7_fan_ctrl_get_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t *speed); + extern int smu7_fan_ctrl_stop_smc_fan_control(struct pp_hwmgr *hwmgr); +-extern int smu7_thermal_enable_alert(struct pp_hwmgr *hwmgr); + extern int smu7_thermal_disable_alert(struct pp_hwmgr *hwmgr); + extern int smu7_fan_ctrl_start_smc_fan_control(struct pp_hwmgr *hwmgr); ++extern int smu7_start_thermal_controller(struct pp_hwmgr *hwmgr, ++ struct PP_TemperatureRange *temperature_range); + #endif + +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c +index c12264c..c60b80059 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c +@@ -5063,6 +5063,6 @@ int vega10_hwmgr_init(struct pp_hwmgr *hwmgr) + { + hwmgr->hwmgr_func = &vega10_hwmgr_funcs; + hwmgr->pptable_func = &vega10_pptable_funcs; +- pp_vega10_thermal_initialize(hwmgr); ++ + return 0; + } +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c +index 5b3c443..ce873e4 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c +@@ -528,8 +528,7 @@ int vega10_thermal_stop_thermal_controller(struct pp_hwmgr *hwmgr) + * @param Result the last failure code + * @return result from set temperature range routine + */ +-int tf_vega10_thermal_setup_fan_table(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) ++int vega10_thermal_setup_fan_table(struct pp_hwmgr *hwmgr) + { + int ret; + struct vega10_hwmgr *data = (struct vega10_hwmgr *)(hwmgr->backend); +@@ -593,8 +592,7 @@ int tf_vega10_thermal_setup_fan_table(struct pp_hwmgr *hwmgr, + * @param Result the last failure code + * @return result from set temperature range routine + */ +-int tf_vega10_thermal_start_smc_fan_control(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) ++int vega10_thermal_start_smc_fan_control(struct pp_hwmgr *hwmgr) + { + /* If the fantable setup has failed we could have disabled + * PHM_PlatformCaps_MicrocodeFanControl even after +@@ -607,107 +605,37 @@ int tf_vega10_thermal_start_smc_fan_control(struct pp_hwmgr *hwmgr, + return 0; + } + +-/** +-* Set temperature range for high and low alerts +-* @param hwmgr the address of the powerplay hardware manager. +-* @param pInput the pointer to input data +-* @param pOutput the pointer to output data +-* @param pStorage the pointer to temporary storage +-* @param Result the last failure code +-* @return result from set temperature range routine +-*/ +-int tf_vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) ++ ++int vega10_start_thermal_controller(struct pp_hwmgr *hwmgr, ++ struct PP_TemperatureRange *range) + { +- struct PP_TemperatureRange *range = (struct PP_TemperatureRange *)input; ++ int ret = 0; + + if (range == NULL) + return -EINVAL; + +- return vega10_thermal_set_temperature_range(hwmgr, range); +-} +- +-/** +-* Programs one-time setting registers +-* @param hwmgr the address of the powerplay hardware manager. +-* @param pInput the pointer to input data +-* @param pOutput the pointer to output data +-* @param pStorage the pointer to temporary storage +-* @param Result the last failure code +-* @return result from initialize thermal controller routine +-*/ +-int tf_vega10_thermal_initialize(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) +-{ +- return vega10_thermal_initialize(hwmgr); +-} +- +-/** +-* Enable high and low alerts +-* @param hwmgr the address of the powerplay hardware manager. +-* @param pInput the pointer to input data +-* @param pOutput the pointer to output data +-* @param pStorage the pointer to temporary storage +-* @param Result the last failure code +-* @return result from enable alert routine +-*/ +-int tf_vega10_thermal_enable_alert(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) +-{ +- return vega10_thermal_enable_alert(hwmgr); +-} +- +-/** +-* Disable high and low alerts +-* @param hwmgr the address of the powerplay hardware manager. +-* @param pInput the pointer to input data +-* @param pOutput the pointer to output data +-* @param pStorage the pointer to temporary storage +-* @param Result the last failure code +-* @return result from disable alert routine +-*/ +-static int tf_vega10_thermal_disable_alert(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) +-{ +- return vega10_thermal_disable_alert(hwmgr); +-} ++ vega10_thermal_initialize(hwmgr); ++ ret = vega10_thermal_set_temperature_range(hwmgr, range); ++ if (ret) ++ return -EINVAL; + +-static struct phm_master_table_item +-vega10_thermal_start_thermal_controller_master_list[] = { +- { .tableFunction = tf_vega10_thermal_initialize }, +- { .tableFunction = tf_vega10_thermal_set_temperature_range }, +- { .tableFunction = tf_vega10_thermal_enable_alert }, ++ vega10_thermal_enable_alert(hwmgr); + /* We should restrict performance levels to low before we halt the SMC. + * On the other hand we are still in boot state when we do this + * so it would be pointless. + * If this assumption changes we have to revisit this table. + */ +- { .tableFunction = tf_vega10_thermal_setup_fan_table }, +- { .tableFunction = tf_vega10_thermal_start_smc_fan_control }, +- { } +-}; ++ ret = vega10_thermal_setup_fan_table(hwmgr); ++ if (ret) ++ return -EINVAL; + +-static struct phm_master_table_header +-vega10_thermal_start_thermal_controller_master = { +- 0, +- PHM_MasterTableFlag_None, +- vega10_thermal_start_thermal_controller_master_list +-}; ++ vega10_thermal_start_smc_fan_control(hwmgr); + +-static struct phm_master_table_item +-vega10_thermal_set_temperature_range_master_list[] = { +- { .tableFunction = tf_vega10_thermal_disable_alert }, +- { .tableFunction = tf_vega10_thermal_set_temperature_range }, +- { .tableFunction = tf_vega10_thermal_enable_alert }, +- { } ++ return 0; + }; + +-struct phm_master_table_header +-vega10_thermal_set_temperature_range_master = { +- 0, +- PHM_MasterTableFlag_None, +- vega10_thermal_set_temperature_range_master_list +-}; ++ ++ + + int vega10_thermal_ctrl_uninitialize_thermal_controller(struct pp_hwmgr *hwmgr) + { +@@ -717,32 +645,3 @@ int vega10_thermal_ctrl_uninitialize_thermal_controller(struct pp_hwmgr *hwmgr) + } + return 0; + } +- +-/** +-* Initializes the thermal controller related functions +-* in the Hardware Manager structure. +-* @param hwmgr The address of the hardware manager. +-* @exception Any error code from the low-level communication. +-*/ +-int pp_vega10_thermal_initialize(struct pp_hwmgr *hwmgr) +-{ +- int result; +- +- result = phm_construct_table(hwmgr, +- &vega10_thermal_set_temperature_range_master, +- &(hwmgr->set_temperature_range)); +- +- if (!result) { +- result = phm_construct_table(hwmgr, +- &vega10_thermal_start_thermal_controller_master, +- &(hwmgr->start_thermal_controller)); +- if (result) +- phm_destroy_table(hwmgr, +- &(hwmgr->set_temperature_range)); +- } +- +- if (!result) +- hwmgr->fan_ctrl_is_in_default_mode = true; +- return result; +-} +- +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h +index 776f3a2..f34ce04 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h +@@ -50,13 +50,6 @@ struct vega10_temperature { + #define FDO_PWM_MODE_STATIC_RPM 5 + + +-extern int tf_vega10_thermal_initialize(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result); +-extern int tf_vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result); +-extern int tf_vega10_thermal_enable_alert(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result); +- + extern int vega10_thermal_get_temperature(struct pp_hwmgr *hwmgr); + extern int vega10_thermal_stop_thermal_controller(struct pp_hwmgr *hwmgr); + extern int vega10_fan_ctrl_get_fan_speed_info(struct pp_hwmgr *hwmgr, +@@ -69,7 +62,6 @@ extern int vega10_fan_ctrl_set_static_mode(struct pp_hwmgr *hwmgr, + extern int vega10_fan_ctrl_set_fan_speed_percent(struct pp_hwmgr *hwmgr, + uint32_t speed); + extern int vega10_fan_ctrl_reset_fan_speed_to_default(struct pp_hwmgr *hwmgr); +-extern int pp_vega10_thermal_initialize(struct pp_hwmgr *hwmgr); + extern int vega10_thermal_ctrl_uninitialize_thermal_controller( + struct pp_hwmgr *hwmgr); + extern int vega10_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, +@@ -77,9 +69,10 @@ extern int vega10_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, + extern int vega10_fan_ctrl_get_fan_speed_rpm(struct pp_hwmgr *hwmgr, + uint32_t *speed); + extern int vega10_fan_ctrl_stop_smc_fan_control(struct pp_hwmgr *hwmgr); +-extern uint32_t smu7_get_xclk(struct pp_hwmgr *hwmgr); + extern int vega10_thermal_disable_alert(struct pp_hwmgr *hwmgr); +-int vega10_fan_ctrl_start_smc_fan_control(struct pp_hwmgr *hwmgr); ++extern int vega10_fan_ctrl_start_smc_fan_control(struct pp_hwmgr *hwmgr); ++ ++extern uint32_t smu7_get_xclk(struct pp_hwmgr *hwmgr); + + #endif + +diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h +index 3bbe7d5..831add4 100644 +--- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h ++++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h +@@ -380,6 +380,7 @@ struct pp_hwmgr_func { + int (*disable_smc_firmware_ctf)(struct pp_hwmgr *hwmgr); + int (*set_active_display_count)(struct pp_hwmgr *hwmgr, uint32_t count); + int (*set_deep_sleep_dcefclk)(struct pp_hwmgr *hwmgr, uint32_t clock); ++ int (*start_thermal_controller)(struct pp_hwmgr *hwmgr, struct PP_TemperatureRange *range); + }; + + struct pp_table_func { +@@ -766,8 +767,6 @@ struct pp_hwmgr { + struct phm_runtime_table_header set_power_state; + struct phm_runtime_table_header enable_clock_power_gatings; + struct phm_runtime_table_header display_configuration_changed; +- struct phm_runtime_table_header start_thermal_controller; +- struct phm_runtime_table_header set_temperature_range; + const struct pp_hwmgr_func *hwmgr_func; + const struct pp_table_func *pptable_func; + struct pp_power_state *ps; +diff --git a/drivers/gpu/drm/amd/powerplay/inc/smumgr.h b/drivers/gpu/drm/amd/powerplay/inc/smumgr.h +index 5d61cc9..eb66091 100644 +--- a/drivers/gpu/drm/amd/powerplay/inc/smumgr.h ++++ b/drivers/gpu/drm/amd/powerplay/inc/smumgr.h +@@ -186,10 +186,8 @@ extern int smum_update_sclk_threshold(struct pp_hwmgr *hwmgr); + + extern int smum_update_smc_table(struct pp_hwmgr *hwmgr, uint32_t type); + extern int smum_process_firmware_header(struct pp_hwmgr *hwmgr); +-extern int smum_thermal_avfs_enable(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result); +-extern int smum_thermal_setup_fan_table(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result); ++extern int smum_thermal_avfs_enable(struct pp_hwmgr *hwmgr); ++extern int smum_thermal_setup_fan_table(struct pp_hwmgr *hwmgr); + extern int smum_init_smc_table(struct pp_hwmgr *hwmgr); + extern int smum_populate_all_graphic_levels(struct pp_hwmgr *hwmgr); + extern int smum_populate_all_memory_levels(struct pp_hwmgr *hwmgr); +diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c +index e397349..4527c07 100644 +--- a/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c ++++ b/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c +@@ -114,8 +114,7 @@ int smum_early_init(struct pp_instance *handle) + return 0; + } + +-int smum_thermal_avfs_enable(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) ++int smum_thermal_avfs_enable(struct pp_hwmgr *hwmgr) + { + if (NULL != hwmgr->smumgr->smumgr_funcs->thermal_avfs_enable) + return hwmgr->smumgr->smumgr_funcs->thermal_avfs_enable(hwmgr); +@@ -123,8 +122,7 @@ int smum_thermal_avfs_enable(struct pp_hwmgr *hwmgr, + return 0; + } + +-int smum_thermal_setup_fan_table(struct pp_hwmgr *hwmgr, +- void *input, void *output, void *storage, int result) ++int smum_thermal_setup_fan_table(struct pp_hwmgr *hwmgr) + { + if (NULL != hwmgr->smumgr->smumgr_funcs->thermal_setup_fan_table) + return hwmgr->smumgr->smumgr_funcs->thermal_setup_fan_table(hwmgr); +-- +2.7.4 + |