aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0104-drm-amd-powerplay-enable-set_cpu_power_state-task.-v.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0104-drm-amd-powerplay-enable-set_cpu_power_state-task.-v.patch')
-rw-r--r--common/recipes-kernel/linux/files/0104-drm-amd-powerplay-enable-set_cpu_power_state-task.-v.patch121
1 files changed, 121 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0104-drm-amd-powerplay-enable-set_cpu_power_state-task.-v.patch b/common/recipes-kernel/linux/files/0104-drm-amd-powerplay-enable-set_cpu_power_state-task.-v.patch
new file mode 100644
index 00000000..9177bbfe
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0104-drm-amd-powerplay-enable-set_cpu_power_state-task.-v.patch
@@ -0,0 +1,121 @@
+From bfab153233ce2f5069eee8c776387411ac8a50df Mon Sep 17 00:00:00 2001
+From: Rex Zhu <Rex.Zhu@amd.com>
+Date: Thu, 19 Nov 2015 13:47:02 +0800
+Subject: [PATCH 0104/1110] drm/amd/powerplay: enable set_cpu_power_state task.
+ (v2)
+
+v2: integrate Jammy's crash fix
+
+Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
+---
+ drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c | 2 +-
+ drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.c | 5 +++++
+ drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.h | 1 +
+ drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 3 +--
+ drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 13 +++++++++++--
+ drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h | 2 ++
+ 6 files changed, 21 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c b/drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c
+index bbbb76c..9458394 100644
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c
++++ b/drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c
+@@ -260,7 +260,7 @@ const struct action_chain disable_user_2d_performance_action_chain = {
+ static const pem_event_action *display_config_change_event[] = {
+ /* countDisplayConfigurationChangeEventTasks, */
+ unblock_adjust_power_state_tasks,
+- /* setCPUPowerState,*/
++ set_cpu_power_state,
+ notify_hw_power_source_tasks,
+ /* updateDALConfigurationTasks,
+ variBrightDisplayConfigurationChangeTasks, */
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.c b/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.c
+index 3dd671e..9ef2d90 100644
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.c
++++ b/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.c
+@@ -403,3 +403,8 @@ const pem_event_action uninitialize_thermal_controller_tasks[] = {
+ pem_task_uninitialize_thermal_controller,
+ NULL
+ };
++
++const pem_event_action set_cpu_power_state[] = {
++ pem_task_set_cpu_power_state,
++ NULL
++};
+\ No newline at end of file
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.h b/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.h
+index 741ebfc..7714cb9 100644
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.h
++++ b/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.h
+@@ -96,4 +96,5 @@ extern const pem_event_action reset_boot_state_tasks[];
+ extern const pem_event_action create_new_user_performance_state_tasks[];
+ extern const pem_event_action initialize_thermal_controller_tasks[];
+ extern const pem_event_action uninitialize_thermal_controller_tasks[];
++extern const pem_event_action set_cpu_power_state[];
+ #endif /* _EVENT_SUB_CHAINS_H_ */
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c b/drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c
+index 618aadf..0a03f79 100644
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c
++++ b/drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c
+@@ -248,8 +248,7 @@ int pem_task_reset_display_phys_access(struct pp_eventmgr *eventmgr, struct pem_
+
+ int pem_task_set_cpu_power_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+ {
+- /* TODO */
+- return 0;
++ return phm_set_cpu_power_state(eventmgr->hwmgr);
+ }
+
+ /*powersaving*/
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c b/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c
+index d6d2849..31b0dc3 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c
+@@ -180,7 +180,7 @@ int phm_display_configuration_changed(struct pp_hwmgr *hwmgr)
+ hwmgr->hwmgr_func->display_config_changed(hwmgr);
+ } else
+ return phm_dispatch_table(hwmgr, &hwmgr->display_configuration_changed, NULL, NULL);
+- return 0;
++ return 0;
+ }
+
+ int phm_notify_smc_display_config_after_ps_adjustment(struct pp_hwmgr *hwmgr)
+@@ -193,7 +193,7 @@ int phm_notify_smc_display_config_after_ps_adjustment(struct pp_hwmgr *hwmgr)
+ if (NULL != hwmgr->hwmgr_func->display_config_changed)
+ hwmgr->hwmgr_func->notify_smc_display_config_after_ps_adjustment(hwmgr);
+
+- return 0;
++ return 0;
+ }
+
+ int phm_stop_thermal_controller(struct pp_hwmgr *hwmgr)
+@@ -260,3 +260,12 @@ int phm_store_dal_configuration_data(struct pp_hwmgr *hwmgr,
+ display_config->nb_pstate_switch_disable);
+
+ }
++
++int phm_set_cpu_power_state(struct pp_hwmgr *hwmgr)
++{
++ if (hwmgr != NULL && hwmgr->hwmgr_func->set_cpu_power_state != NULL)
++ return hwmgr->hwmgr_func->set_cpu_power_state(hwmgr);
++
++ return 0;
++}
++
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h b/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h
+index 7b721e8..820622d 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h
+@@ -356,5 +356,7 @@ extern int phm_check_states_equal(struct pp_hwmgr *hwmgr,
+ extern int phm_store_dal_configuration_data(struct pp_hwmgr *hwmgr,
+ const struct amd_pp_display_configuration *display_config);
+
++extern int phm_set_cpu_power_state(struct pp_hwmgr *hwmgr);
++
+ #endif /* _HARDWARE_MANAGER_H_ */
+
+--
+2.7.4
+