aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1045-drm-amd-powerplay-refine-code-for-thermal-control-in.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1045-drm-amd-powerplay-refine-code-for-thermal-control-in.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1045-drm-amd-powerplay-refine-code-for-thermal-control-in.patch595
1 files changed, 595 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1045-drm-amd-powerplay-refine-code-for-thermal-control-in.patch b/meta-amd-bsp/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/meta-amd-bsp/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
+