aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0079-drm-amd-powerplay-add-and-export-hwmgr-interface-to-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0079-drm-amd-powerplay-add-and-export-hwmgr-interface-to-.patch')
-rw-r--r--common/recipes-kernel/linux/files/0079-drm-amd-powerplay-add-and-export-hwmgr-interface-to-.patch90
1 files changed, 90 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0079-drm-amd-powerplay-add-and-export-hwmgr-interface-to-.patch b/common/recipes-kernel/linux/files/0079-drm-amd-powerplay-add-and-export-hwmgr-interface-to-.patch
new file mode 100644
index 00000000..157a7c10
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0079-drm-amd-powerplay-add-and-export-hwmgr-interface-to-.patch
@@ -0,0 +1,90 @@
+From 962df00d7b3b3ff73130c618228f0e4ffe98d3b3 Mon Sep 17 00:00:00 2001
+From: Rex Zhu <Rex.Zhu@amd.com>
+Date: Wed, 4 Nov 2015 11:07:34 +0800
+Subject: [PATCH 0079/1110] drm/amd/powerplay: add and export hwmgr interface
+ to eventmgr to check hw states.
+
+Interface between hwmgr and eventmgr.
+
+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>
+---
+ .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 21 +++++++++++++++++++++
+ drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h | 8 ++++++++
+ drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 5 +++++
+ 3 files changed, 34 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c b/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c
+index 9d910f3..f2d603c 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c
+@@ -223,3 +223,24 @@ int phm_start_thermal_controller(struct pp_hwmgr *hwmgr, struct PP_TemperatureRa
+
+ return phm_dispatch_table(hwmgr, &(hwmgr->start_thermal_controller), temperature_range, NULL);
+ }
++
++
++bool phm_check_smc_update_required_for_display_configuration(struct pp_hwmgr *hwmgr)
++{
++ if (hwmgr == NULL || hwmgr->hwmgr_func->check_smc_update_required_for_display_configuration == NULL)
++ return -EINVAL;
++
++ return hwmgr->hwmgr_func->check_smc_update_required_for_display_configuration(hwmgr);
++}
++
++
++int phm_check_states_equal(struct pp_hwmgr *hwmgr,
++ const struct pp_hw_power_state *pstate1,
++ const struct pp_hw_power_state *pstate2,
++ bool *equal)
++{
++ if (hwmgr == NULL || hwmgr->hwmgr_func->check_states_equal == NULL)
++ return -EINVAL;
++
++ return hwmgr->hwmgr_func->check_states_equal(hwmgr, pstate1, pstate2, equal);
++}
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h b/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h
+index a868110..a3f7bd2 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h
+@@ -322,6 +322,7 @@ struct phm_clocks {
+ uint32_t num_of_entries;
+ uint32_t clock[MAX_NUM_CLOCKS];
+ };
++
+ extern int phm_enable_clock_power_gatings(struct pp_hwmgr *hwmgr);
+ extern int phm_powergate_uvd(struct pp_hwmgr *hwmgr, bool gate);
+ extern int phm_powergate_vce(struct pp_hwmgr *hwmgr, bool gate);
+@@ -345,5 +346,12 @@ extern int phm_notify_smc_display_config_after_ps_adjustment(struct pp_hwmgr *hw
+ extern int phm_register_thermal_interrupt(struct pp_hwmgr *hwmgr, const void *info);
+ extern int phm_start_thermal_controller(struct pp_hwmgr *hwmgr, struct PP_TemperatureRange *temperature_range);
+ extern int phm_stop_thermal_controller(struct pp_hwmgr *hwmgr);
++extern bool phm_check_smc_update_required_for_display_configuration(struct pp_hwmgr *hwmgr);
++
++extern int phm_check_states_equal(struct pp_hwmgr *hwmgr,
++ const struct pp_hw_power_state *pstate1,
++ const struct pp_hw_power_state *pstate2,
++ bool *equal);
++
+ #endif /* _HARDWARE_MANAGER_H_ */
+
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
+index aedb1e4..5b5c94d 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
+@@ -307,6 +307,11 @@ struct pp_hwmgr_func {
+ int (*uninitialize_thermal_controller)(struct pp_hwmgr *hwmgr);
+ int (*register_internal_thermal_interrupt)(struct pp_hwmgr *hwmgr,
+ const void *thermal_interrupt_info);
++ bool (*check_smc_update_required_for_display_configuration)(struct pp_hwmgr *hwmgr);
++ int (*check_states_equal)(struct pp_hwmgr *hwmgr,
++ const struct pp_hw_power_state *pstate1,
++ const struct pp_hw_power_state *pstate2,
++ bool *equal);
+ };
+
+ struct pp_table_func {
+--
+2.7.4
+