aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0907-drm-amd-powerplay-delete-eventmgr-related-files.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0907-drm-amd-powerplay-delete-eventmgr-related-files.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/0907-drm-amd-powerplay-delete-eventmgr-related-files.patch2548
1 files changed, 2548 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0907-drm-amd-powerplay-delete-eventmgr-related-files.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0907-drm-amd-powerplay-delete-eventmgr-related-files.patch
new file mode 100644
index 00000000..bafa67e6
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0907-drm-amd-powerplay-delete-eventmgr-related-files.patch
@@ -0,0 +1,2548 @@
+From 39723db4364b89bc96d409a154fe223cd86a9d11 Mon Sep 17 00:00:00 2001
+From: Rex Zhu <Rex.Zhu@amd.com>
+Date: Fri, 1 Sep 2017 13:48:11 +0800
+Subject: [PATCH 0907/4131] drm/amd/powerplay: delete eventmgr related files.
+
+Change-Id: I6296a8cc697b51bf7d377c428ab02db64d3908fc
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
+---
+ drivers/gpu/drm/amd/powerplay/eventmgr/Makefile | 11 -
+ .../drm/amd/powerplay/eventmgr/eventactionchains.c | 291 --------------
+ .../drm/amd/powerplay/eventmgr/eventactionchains.h | 62 ---
+ drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.c | 195 ---------
+ drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.h | 34 --
+ .../drm/amd/powerplay/eventmgr/eventmanagement.c | 215 ----------
+ .../drm/amd/powerplay/eventmgr/eventmanagement.h | 59 ---
+ drivers/gpu/drm/amd/powerplay/eventmgr/eventmgr.c | 104 -----
+ .../drm/amd/powerplay/eventmgr/eventsubchains.c | 410 -------------------
+ .../drm/amd/powerplay/eventmgr/eventsubchains.h | 100 -----
+ .../gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 445 ---------------------
+ .../gpu/drm/amd/powerplay/eventmgr/eventtasks.h | 89 -----
+ drivers/gpu/drm/amd/powerplay/eventmgr/psm.c | 119 ------
+ drivers/gpu/drm/amd/powerplay/eventmgr/psm.h | 38 --
+ drivers/gpu/drm/amd/powerplay/inc/eventmanager.h | 109 -----
+ drivers/gpu/drm/amd/powerplay/inc/eventmgr.h | 124 ------
+ 16 files changed, 2405 deletions(-)
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/Makefile
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.h
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.c
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.h
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/eventmanagement.c
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/eventmanagement.h
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/eventmgr.c
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.c
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.h
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.h
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/psm.c
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/eventmgr/psm.h
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/inc/eventmanager.h
+ delete mode 100644 drivers/gpu/drm/amd/powerplay/inc/eventmgr.h
+
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/Makefile b/drivers/gpu/drm/amd/powerplay/eventmgr/Makefile
+deleted file mode 100644
+index 7509e38..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/Makefile
++++ /dev/null
+@@ -1,11 +0,0 @@
+-#
+-# Makefile for the 'event manager' sub-component of powerplay.
+-# It provides the event management services for the driver.
+-
+-EVENT_MGR = eventmgr.o eventinit.o eventmanagement.o \
+- eventactionchains.o eventsubchains.o eventtasks.o psm.o
+-
+-AMD_PP_EVENT = $(addprefix $(AMD_PP_PATH)/eventmgr/,$(EVENT_MGR))
+-
+-AMD_POWERPLAY_FILES += $(AMD_PP_EVENT)
+-
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c b/drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c
+deleted file mode 100644
+index 8cee4e0..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c
++++ /dev/null
+@@ -1,291 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-#include "eventmgr.h"
+-#include "eventactionchains.h"
+-#include "eventsubchains.h"
+-
+-static const pem_event_action * const initialize_event[] = {
+- block_adjust_power_state_tasks,
+- power_budget_tasks,
+- system_config_tasks,
+- setup_asic_tasks,
+- enable_dynamic_state_management_tasks,
+- get_2d_performance_state_tasks,
+- set_performance_state_tasks,
+- initialize_thermal_controller_tasks,
+- conditionally_force_3d_performance_state_tasks,
+- process_vbios_eventinfo_tasks,
+- broadcast_power_policy_tasks,
+- NULL
+-};
+-
+-const struct action_chain initialize_action_chain = {
+- "Initialize",
+- initialize_event
+-};
+-
+-static const pem_event_action * const uninitialize_event[] = {
+- ungate_all_display_phys_tasks,
+- uninitialize_display_phy_access_tasks,
+- disable_gfx_voltage_island_power_gating_tasks,
+- disable_gfx_clock_gating_tasks,
+- uninitialize_thermal_controller_tasks,
+- set_boot_state_tasks,
+- adjust_power_state_tasks,
+- disable_dynamic_state_management_tasks,
+- disable_clock_power_gatings_tasks,
+- cleanup_asic_tasks,
+- prepare_for_pnp_stop_tasks,
+- NULL
+-};
+-
+-const struct action_chain uninitialize_action_chain = {
+- "Uninitialize",
+- uninitialize_event
+-};
+-
+-static const pem_event_action * const power_source_change_event_pp_enabled[] = {
+- set_power_source_tasks,
+- set_power_saving_state_tasks,
+- adjust_power_state_tasks,
+- enable_disable_fps_tasks,
+- set_nbmcu_state_tasks,
+- broadcast_power_policy_tasks,
+- NULL
+-};
+-
+-const struct action_chain power_source_change_action_chain_pp_enabled = {
+- "Power source change - PowerPlay enabled",
+- power_source_change_event_pp_enabled
+-};
+-
+-static const pem_event_action * const power_source_change_event_pp_disabled[] = {
+- set_power_source_tasks,
+- set_nbmcu_state_tasks,
+- NULL
+-};
+-
+-const struct action_chain power_source_changes_action_chain_pp_disabled = {
+- "Power source change - PowerPlay disabled",
+- power_source_change_event_pp_disabled
+-};
+-
+-static const pem_event_action * const power_source_change_event_hardware_dc[] = {
+- set_power_source_tasks,
+- set_power_saving_state_tasks,
+- adjust_power_state_tasks,
+- enable_disable_fps_tasks,
+- reset_hardware_dc_notification_tasks,
+- set_nbmcu_state_tasks,
+- broadcast_power_policy_tasks,
+- NULL
+-};
+-
+-const struct action_chain power_source_change_action_chain_hardware_dc = {
+- "Power source change - with Hardware DC switching",
+- power_source_change_event_hardware_dc
+-};
+-
+-static const pem_event_action * const suspend_event[] = {
+- reset_display_phy_access_tasks,
+- unregister_interrupt_tasks,
+- disable_gfx_voltage_island_power_gating_tasks,
+- disable_gfx_clock_gating_tasks,
+- notify_smu_suspend_tasks,
+- disable_smc_firmware_ctf_tasks,
+- set_boot_state_tasks,
+- adjust_power_state_tasks,
+- disable_fps_tasks,
+- vari_bright_suspend_tasks,
+- reset_fan_speed_to_default_tasks,
+- power_down_asic_tasks,
+- disable_stutter_mode_tasks,
+- set_connected_standby_tasks,
+- block_hw_access_tasks,
+- NULL
+-};
+-
+-const struct action_chain suspend_action_chain = {
+- "Suspend",
+- suspend_event
+-};
+-
+-static const pem_event_action * const resume_event[] = {
+- unblock_hw_access_tasks,
+- resume_connected_standby_tasks,
+- notify_smu_resume_tasks,
+- reset_display_configCounter_tasks,
+- update_dal_configuration_tasks,
+- vari_bright_resume_tasks,
+- setup_asic_tasks,
+- enable_stutter_mode_tasks, /*must do this in boot state and before SMC is started */
+- enable_dynamic_state_management_tasks,
+- enable_disable_bapm_tasks,
+- initialize_thermal_controller_tasks,
+- get_2d_performance_state_tasks,
+- set_performance_state_tasks,
+- adjust_power_state_tasks,
+- enable_disable_fps_tasks,
+- notify_hw_power_source_tasks,
+- process_vbios_event_info_tasks,
+- enable_gfx_clock_gating_tasks,
+- enable_gfx_voltage_island_power_gating_tasks,
+- reset_clock_gating_tasks,
+- notify_smu_vpu_recovery_end_tasks,
+- disable_vpu_cap_tasks,
+- execute_escape_sequence_tasks,
+- NULL
+-};
+-
+-
+-const struct action_chain resume_action_chain = {
+- "resume",
+- resume_event
+-};
+-
+-static const pem_event_action * const complete_init_event[] = {
+- unblock_adjust_power_state_tasks,
+- adjust_power_state_tasks,
+- enable_gfx_clock_gating_tasks,
+- enable_gfx_voltage_island_power_gating_tasks,
+- notify_power_state_change_tasks,
+- NULL
+-};
+-
+-const struct action_chain complete_init_action_chain = {
+- "complete init",
+- complete_init_event
+-};
+-
+-static const pem_event_action * const enable_gfx_clock_gating_event[] = {
+- enable_gfx_clock_gating_tasks,
+- NULL
+-};
+-
+-const struct action_chain enable_gfx_clock_gating_action_chain = {
+- "enable gfx clock gate",
+- enable_gfx_clock_gating_event
+-};
+-
+-static const pem_event_action * const disable_gfx_clock_gating_event[] = {
+- disable_gfx_clock_gating_tasks,
+- NULL
+-};
+-
+-const struct action_chain disable_gfx_clock_gating_action_chain = {
+- "disable gfx clock gate",
+- disable_gfx_clock_gating_event
+-};
+-
+-static const pem_event_action * const enable_cgpg_event[] = {
+- enable_cgpg_tasks,
+- NULL
+-};
+-
+-const struct action_chain enable_cgpg_action_chain = {
+- "eable cg pg",
+- enable_cgpg_event
+-};
+-
+-static const pem_event_action * const disable_cgpg_event[] = {
+- disable_cgpg_tasks,
+- NULL
+-};
+-
+-const struct action_chain disable_cgpg_action_chain = {
+- "disable cg pg",
+- disable_cgpg_event
+-};
+-
+-
+-/* Enable user _2d performance and activate */
+-
+-static const pem_event_action * const enable_user_state_event[] = {
+- create_new_user_performance_state_tasks,
+- adjust_power_state_tasks,
+- NULL
+-};
+-
+-const struct action_chain enable_user_state_action_chain = {
+- "Enable user state",
+- enable_user_state_event
+-};
+-
+-static const pem_event_action * const enable_user_2d_performance_event[] = {
+- enable_user_2d_performance_tasks,
+- add_user_2d_performance_state_tasks,
+- set_performance_state_tasks,
+- adjust_power_state_tasks,
+- delete_user_2d_performance_state_tasks,
+- NULL
+-};
+-
+-const struct action_chain enable_user_2d_performance_action_chain = {
+- "enable_user_2d_performance_event_activate",
+- enable_user_2d_performance_event
+-};
+-
+-
+-static const pem_event_action * const disable_user_2d_performance_event[] = {
+- disable_user_2d_performance_tasks,
+- delete_user_2d_performance_state_tasks,
+- NULL
+-};
+-
+-const struct action_chain disable_user_2d_performance_action_chain = {
+- "disable_user_2d_performance_event",
+- disable_user_2d_performance_event
+-};
+-
+-
+-static const pem_event_action * const display_config_change_event[] = {
+- /* countDisplayConfigurationChangeEventTasks, */
+- unblock_adjust_power_state_tasks,
+- set_cpu_power_state,
+- notify_hw_power_source_tasks,
+- get_2d_performance_state_tasks,
+- set_performance_state_tasks,
+- /* updateDALConfigurationTasks,
+- variBrightDisplayConfigurationChangeTasks, */
+- adjust_power_state_tasks,
+- /*enableDisableFPSTasks,
+- setNBMCUStateTasks,
+- notifyPCIEDeviceReadyTasks,*/
+- NULL
+-};
+-
+-const struct action_chain display_config_change_action_chain = {
+- "Display configuration change",
+- display_config_change_event
+-};
+-
+-static const pem_event_action * const readjust_power_state_event[] = {
+- adjust_power_state_tasks,
+- NULL
+-};
+-
+-const struct action_chain readjust_power_state_action_chain = {
+- "re-adjust power state",
+- readjust_power_state_event
+-};
+-
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.h b/drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.h
+deleted file mode 100644
+index f181e53..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.h
++++ /dev/null
+@@ -1,62 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-#ifndef _EVENT_ACTION_CHAINS_H_
+-#define _EVENT_ACTION_CHAINS_H_
+-#include "eventmgr.h"
+-
+-extern const struct action_chain initialize_action_chain;
+-
+-extern const struct action_chain uninitialize_action_chain;
+-
+-extern const struct action_chain power_source_change_action_chain_pp_enabled;
+-
+-extern const struct action_chain power_source_changes_action_chain_pp_disabled;
+-
+-extern const struct action_chain power_source_change_action_chain_hardware_dc;
+-
+-extern const struct action_chain suspend_action_chain;
+-
+-extern const struct action_chain resume_action_chain;
+-
+-extern const struct action_chain complete_init_action_chain;
+-
+-extern const struct action_chain enable_gfx_clock_gating_action_chain;
+-
+-extern const struct action_chain disable_gfx_clock_gating_action_chain;
+-
+-extern const struct action_chain enable_cgpg_action_chain;
+-
+-extern const struct action_chain disable_cgpg_action_chain;
+-
+-extern const struct action_chain enable_user_2d_performance_action_chain;
+-
+-extern const struct action_chain disable_user_2d_performance_action_chain;
+-
+-extern const struct action_chain enable_user_state_action_chain;
+-
+-extern const struct action_chain readjust_power_state_action_chain;
+-
+-extern const struct action_chain display_config_change_action_chain;
+-
+-#endif /*_EVENT_ACTION_CHAINS_H_*/
+-
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.c b/drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.c
+deleted file mode 100644
+index a3cd230..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.c
++++ /dev/null
+@@ -1,195 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-#include "eventmgr.h"
+-#include "eventinit.h"
+-#include "ppinterrupt.h"
+-#include "hardwaremanager.h"
+-
+-void pem_init_feature_info(struct pp_eventmgr *eventmgr)
+-{
+-
+- /* PowerPlay info */
+- eventmgr->ui_state_info[PP_PowerSource_AC].default_ui_lable =
+- PP_StateUILabel_Performance;
+-
+- eventmgr->ui_state_info[PP_PowerSource_AC].current_ui_label =
+- PP_StateUILabel_Performance;
+-
+- eventmgr->ui_state_info[PP_PowerSource_DC].default_ui_lable =
+- PP_StateUILabel_Battery;
+-
+- eventmgr->ui_state_info[PP_PowerSource_DC].current_ui_label =
+- PP_StateUILabel_Battery;
+-
+- if (phm_cap_enabled(eventmgr->platform_descriptor->platformCaps, PHM_PlatformCaps_PowerPlaySupport)) {
+- eventmgr->features[PP_Feature_PowerPlay].supported = true;
+- eventmgr->features[PP_Feature_PowerPlay].version = PEM_CURRENT_POWERPLAY_FEATURE_VERSION;
+- eventmgr->features[PP_Feature_PowerPlay].enabled_default = true;
+- eventmgr->features[PP_Feature_PowerPlay].enabled = true;
+- } else {
+- eventmgr->features[PP_Feature_PowerPlay].supported = false;
+- eventmgr->features[PP_Feature_PowerPlay].enabled = false;
+- eventmgr->features[PP_Feature_PowerPlay].enabled_default = false;
+- }
+-
+- eventmgr->features[PP_Feature_Force3DClock].supported = true;
+- eventmgr->features[PP_Feature_Force3DClock].enabled = false;
+- eventmgr->features[PP_Feature_Force3DClock].enabled_default = false;
+- eventmgr->features[PP_Feature_Force3DClock].version = 1;
+-
+- /* over drive*/
+- eventmgr->features[PP_Feature_User2DPerformance].version = 4;
+- eventmgr->features[PP_Feature_User3DPerformance].version = 4;
+- eventmgr->features[PP_Feature_OverdriveTest].version = 4;
+-
+- eventmgr->features[PP_Feature_OverDrive].version = 4;
+- eventmgr->features[PP_Feature_OverDrive].enabled = false;
+- eventmgr->features[PP_Feature_OverDrive].enabled_default = false;
+-
+- eventmgr->features[PP_Feature_User2DPerformance].supported = false;
+- eventmgr->features[PP_Feature_User2DPerformance].enabled = false;
+- eventmgr->features[PP_Feature_User2DPerformance].enabled_default = false;
+-
+- eventmgr->features[PP_Feature_User3DPerformance].supported = false;
+- eventmgr->features[PP_Feature_User3DPerformance].enabled = false;
+- eventmgr->features[PP_Feature_User3DPerformance].enabled_default = false;
+-
+- eventmgr->features[PP_Feature_OverdriveTest].supported = false;
+- eventmgr->features[PP_Feature_OverdriveTest].enabled = false;
+- eventmgr->features[PP_Feature_OverdriveTest].enabled_default = false;
+-
+- eventmgr->features[PP_Feature_OverDrive].supported = false;
+-
+- eventmgr->features[PP_Feature_PowerBudgetWaiver].enabled_default = false;
+- eventmgr->features[PP_Feature_PowerBudgetWaiver].version = 1;
+- eventmgr->features[PP_Feature_PowerBudgetWaiver].supported = false;
+- eventmgr->features[PP_Feature_PowerBudgetWaiver].enabled = false;
+-
+- /* Multi UVD States support */
+- eventmgr->features[PP_Feature_MultiUVDState].supported = false;
+- eventmgr->features[PP_Feature_MultiUVDState].enabled = false;
+- eventmgr->features[PP_Feature_MultiUVDState].enabled_default = false;
+-
+- /* Dynamic UVD States support */
+- eventmgr->features[PP_Feature_DynamicUVDState].supported = false;
+- eventmgr->features[PP_Feature_DynamicUVDState].enabled = false;
+- eventmgr->features[PP_Feature_DynamicUVDState].enabled_default = false;
+-
+- /* VCE DPM support */
+- eventmgr->features[PP_Feature_VCEDPM].supported = false;
+- eventmgr->features[PP_Feature_VCEDPM].enabled = false;
+- eventmgr->features[PP_Feature_VCEDPM].enabled_default = false;
+-
+- /* ACP PowerGating support */
+- eventmgr->features[PP_Feature_ACP_POWERGATING].supported = false;
+- eventmgr->features[PP_Feature_ACP_POWERGATING].enabled = false;
+- eventmgr->features[PP_Feature_ACP_POWERGATING].enabled_default = false;
+-
+- /* PPM support */
+- eventmgr->features[PP_Feature_PPM].version = 1;
+- eventmgr->features[PP_Feature_PPM].supported = false;
+- eventmgr->features[PP_Feature_PPM].enabled = false;
+-
+- /* FFC support (enables fan and temp settings, Gemini needs temp settings) */
+- if (phm_cap_enabled(eventmgr->platform_descriptor->platformCaps, PHM_PlatformCaps_ODFuzzyFanControlSupport) ||
+- phm_cap_enabled(eventmgr->platform_descriptor->platformCaps, PHM_PlatformCaps_GeminiRegulatorFanControlSupport)) {
+- eventmgr->features[PP_Feature_FFC].version = 1;
+- eventmgr->features[PP_Feature_FFC].supported = true;
+- eventmgr->features[PP_Feature_FFC].enabled = true;
+- eventmgr->features[PP_Feature_FFC].enabled_default = true;
+- } else {
+- eventmgr->features[PP_Feature_FFC].supported = false;
+- eventmgr->features[PP_Feature_FFC].enabled = false;
+- eventmgr->features[PP_Feature_FFC].enabled_default = false;
+- }
+-
+- eventmgr->features[PP_Feature_VariBright].supported = false;
+- eventmgr->features[PP_Feature_VariBright].enabled = false;
+- eventmgr->features[PP_Feature_VariBright].enabled_default = false;
+-
+- eventmgr->features[PP_Feature_BACO].supported = false;
+- eventmgr->features[PP_Feature_BACO].supported = false;
+- eventmgr->features[PP_Feature_BACO].enabled_default = false;
+-
+- /* PowerDown feature support */
+- eventmgr->features[PP_Feature_PowerDown].supported = false;
+- eventmgr->features[PP_Feature_PowerDown].enabled = false;
+- eventmgr->features[PP_Feature_PowerDown].enabled_default = false;
+-
+- eventmgr->features[PP_Feature_FPS].version = 1;
+- eventmgr->features[PP_Feature_FPS].supported = false;
+- eventmgr->features[PP_Feature_FPS].enabled_default = false;
+- eventmgr->features[PP_Feature_FPS].enabled = false;
+-
+- eventmgr->features[PP_Feature_ViPG].version = 1;
+- eventmgr->features[PP_Feature_ViPG].supported = false;
+- eventmgr->features[PP_Feature_ViPG].enabled_default = false;
+- eventmgr->features[PP_Feature_ViPG].enabled = false;
+-}
+-
+-static int thermal_interrupt_callback(void *private_data,
+- unsigned src_id, const uint32_t *iv_entry)
+-{
+- /* TO DO hanle PEM_Event_ThermalNotification (struct pp_eventmgr *)private_data*/
+- pr_info("current thermal is out of range \n");
+- return 0;
+-}
+-
+-int pem_register_interrupts(struct pp_eventmgr *eventmgr)
+-{
+- int result = 0;
+- struct pp_interrupt_registration_info info;
+-
+- info.call_back = thermal_interrupt_callback;
+- info.context = eventmgr;
+-
+- result = phm_register_thermal_interrupt(eventmgr->hwmgr, &info);
+-
+- /* TODO:
+- * 2. Register CTF event interrupt
+- * 3. Register for vbios events interrupt
+- * 4. Register External Throttle Interrupt
+- * 5. Register Smc To Host Interrupt
+- * */
+- return result;
+-}
+-
+-
+-int pem_unregister_interrupts(struct pp_eventmgr *eventmgr)
+-{
+- return 0;
+-}
+-
+-
+-void pem_uninit_featureInfo(struct pp_eventmgr *eventmgr)
+-{
+- eventmgr->features[PP_Feature_MultiUVDState].supported = false;
+- eventmgr->features[PP_Feature_VariBright].supported = false;
+- eventmgr->features[PP_Feature_PowerBudgetWaiver].supported = false;
+- eventmgr->features[PP_Feature_OverDrive].supported = false;
+- eventmgr->features[PP_Feature_OverdriveTest].supported = false;
+- eventmgr->features[PP_Feature_User3DPerformance].supported = false;
+- eventmgr->features[PP_Feature_User2DPerformance].supported = false;
+- eventmgr->features[PP_Feature_PowerPlay].supported = false;
+- eventmgr->features[PP_Feature_Force3DClock].supported = false;
+-}
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.h b/drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.h
+deleted file mode 100644
+index 9ef96aa..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventinit.h
++++ /dev/null
+@@ -1,34 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-
+-#ifndef _EVENTINIT_H_
+-#define _EVENTINIT_H_
+-
+-#define PEM_CURRENT_POWERPLAY_FEATURE_VERSION 4
+-
+-void pem_init_feature_info(struct pp_eventmgr *eventmgr);
+-void pem_uninit_featureInfo(struct pp_eventmgr *eventmgr);
+-int pem_register_interrupts(struct pp_eventmgr *eventmgr);
+-int pem_unregister_interrupts(struct pp_eventmgr *eventmgr);
+-
+-#endif /* _EVENTINIT_H_ */
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventmanagement.c b/drivers/gpu/drm/amd/powerplay/eventmgr/eventmanagement.c
+deleted file mode 100644
+index cd1ca07..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventmanagement.c
++++ /dev/null
+@@ -1,215 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-#include "eventmanagement.h"
+-#include "eventmgr.h"
+-#include "eventactionchains.h"
+-
+-int pem_init_event_action_chains(struct pp_eventmgr *eventmgr)
+-{
+- int i;
+-
+- for (i = 0; i < AMD_PP_EVENT_MAX; i++)
+- eventmgr->event_chain[i] = NULL;
+-
+- eventmgr->event_chain[AMD_PP_EVENT_SUSPEND] = pem_get_suspend_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_INITIALIZE] = pem_get_initialize_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_UNINITIALIZE] = pem_get_uninitialize_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_POWER_SOURCE_CHANGE] = pem_get_power_source_change_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_HIBERNATE] = pem_get_hibernate_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_RESUME] = pem_get_resume_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_THERMAL_NOTIFICATION] = pem_get_thermal_notification_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_VBIOS_NOTIFICATION] = pem_get_vbios_notification_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_ENTER_THERMAL_STATE] = pem_get_enter_thermal_state_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_EXIT_THERMAL_STATE] = pem_get_exit_thermal_state_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_ENABLE_POWER_PLAY] = pem_get_enable_powerplay_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_DISABLE_POWER_PLAY] = pem_get_disable_powerplay_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_ENABLE_OVER_DRIVE_TEST] = pem_get_enable_overdrive_test_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_DISABLE_OVER_DRIVE_TEST] = pem_get_disable_overdrive_test_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_ENABLE_GFX_CLOCK_GATING] = pem_get_enable_gfx_clock_gating_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_DISABLE_GFX_CLOCK_GATING] = pem_get_disable_gfx_clock_gating_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_ENABLE_CGPG] = pem_get_enable_cgpg_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_DISABLE_CGPG] = pem_get_disable_cgpg_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_COMPLETE_INIT] = pem_get_complete_init_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_SCREEN_ON] = pem_get_screen_on_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_SCREEN_OFF] = pem_get_screen_off_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_PRE_SUSPEND] = pem_get_pre_suspend_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_PRE_RESUME] = pem_get_pre_resume_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_ENABLE_USER_STATE] = pem_enable_user_state_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_READJUST_POWER_STATE] = pem_readjust_power_state_action_chain(eventmgr);
+- eventmgr->event_chain[AMD_PP_EVENT_DISPLAY_CONFIG_CHANGE] = pem_display_config_change_action_chain(eventmgr);
+- return 0;
+-}
+-
+-int pem_excute_event_chain(struct pp_eventmgr *eventmgr, const struct action_chain *event_chain, struct pem_event_data *event_data)
+-{
+- const pem_event_action * const *paction_chain;
+- const pem_event_action *psub_chain;
+- int tmp_result = 0;
+- int result = 0;
+-
+- if (eventmgr == NULL || event_chain == NULL || event_data == NULL)
+- return -EINVAL;
+-
+- for (paction_chain = event_chain->action_chain; NULL != *paction_chain; paction_chain++) {
+- if (0 != result)
+- return result;
+-
+- for (psub_chain = *paction_chain; NULL != *psub_chain; psub_chain++) {
+- tmp_result = (*psub_chain)(eventmgr, event_data);
+- if (0 == result)
+- result = tmp_result;
+- }
+- }
+-
+- return result;
+-}
+-
+-const struct action_chain *pem_get_suspend_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &suspend_action_chain;
+-}
+-
+-const struct action_chain *pem_get_initialize_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &initialize_action_chain;
+-}
+-
+-const struct action_chain *pem_get_uninitialize_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &uninitialize_action_chain;
+-}
+-
+-const struct action_chain *pem_get_power_source_change_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &power_source_change_action_chain_pp_enabled; /* other case base on feature info*/
+-}
+-
+-const struct action_chain *pem_get_resume_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &resume_action_chain;
+-}
+-
+-const struct action_chain *pem_get_hibernate_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_thermal_notification_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_vbios_notification_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_enter_thermal_state_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_exit_thermal_state_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_enable_powerplay_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_disable_powerplay_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_enable_overdrive_test_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_disable_overdrive_test_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_enable_gfx_clock_gating_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &enable_gfx_clock_gating_action_chain;
+-}
+-
+-const struct action_chain *pem_get_disable_gfx_clock_gating_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &disable_gfx_clock_gating_action_chain;
+-}
+-
+-const struct action_chain *pem_get_enable_cgpg_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &enable_cgpg_action_chain;
+-}
+-
+-const struct action_chain *pem_get_disable_cgpg_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &disable_cgpg_action_chain;
+-}
+-
+-const struct action_chain *pem_get_complete_init_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &complete_init_action_chain;
+-}
+-
+-const struct action_chain *pem_get_screen_on_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_screen_off_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_pre_suspend_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_get_pre_resume_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return NULL;
+-}
+-
+-const struct action_chain *pem_enable_user_state_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &enable_user_state_action_chain;
+-}
+-
+-const struct action_chain *pem_readjust_power_state_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &readjust_power_state_action_chain;
+-}
+-
+-const struct action_chain *pem_display_config_change_action_chain(struct pp_eventmgr *eventmgr)
+-{
+- return &display_config_change_action_chain;
+-}
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventmanagement.h b/drivers/gpu/drm/amd/powerplay/eventmgr/eventmanagement.h
+deleted file mode 100644
+index 383d4b2..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventmanagement.h
++++ /dev/null
+@@ -1,59 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-#ifndef _EVENT_MANAGEMENT_H_
+-#define _EVENT_MANAGEMENT_H_
+-
+-#include "eventmgr.h"
+-
+-int pem_init_event_action_chains(struct pp_eventmgr *eventmgr);
+-int pem_excute_event_chain(struct pp_eventmgr *eventmgr, const struct action_chain *event_chain, struct pem_event_data *event_data);
+-const struct action_chain *pem_get_suspend_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_initialize_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_uninitialize_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_power_source_change_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_resume_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_hibernate_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_thermal_notification_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_vbios_notification_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_enter_thermal_state_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_exit_thermal_state_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_enable_powerplay_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_disable_powerplay_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_enable_overdrive_test_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_disable_overdrive_test_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_enable_gfx_clock_gating_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_disable_gfx_clock_gating_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_enable_cgpg_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_disable_cgpg_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_complete_init_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_screen_on_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_screen_off_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_pre_suspend_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_get_pre_resume_action_chain(struct pp_eventmgr *eventmgr);
+-
+-extern const struct action_chain *pem_enable_user_state_action_chain(struct pp_eventmgr *eventmgr);
+-extern const struct action_chain *pem_readjust_power_state_action_chain(struct pp_eventmgr *eventmgr);
+-const struct action_chain *pem_display_config_change_action_chain(struct pp_eventmgr *eventmgr);
+-
+-
+-#endif /* _EVENT_MANAGEMENT_H_ */
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventmgr.c b/drivers/gpu/drm/amd/powerplay/eventmgr/eventmgr.c
+deleted file mode 100644
+index 3e3ca03..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventmgr.c
++++ /dev/null
+@@ -1,104 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-#include <linux/types.h>
+-#include <linux/kernel.h>
+-#include <linux/slab.h>
+-#include "eventmgr.h"
+-#include "hwmgr.h"
+-#include "eventinit.h"
+-#include "eventmanagement.h"
+-
+-static int pem_init(struct pp_eventmgr *eventmgr)
+-{
+- int result = 0;
+- struct pem_event_data event_data = { {0} };
+-
+- /* Initialize PowerPlay feature info */
+- pem_init_feature_info(eventmgr);
+-
+- /* Initialize event action chains */
+- pem_init_event_action_chains(eventmgr);
+-
+- /* Call initialization event */
+- result = pem_handle_event(eventmgr, AMD_PP_EVENT_INITIALIZE, &event_data);
+-
+- /* if (0 != result)
+- return result; */
+-
+- /* Register interrupt callback functions */
+- result = pem_register_interrupts(eventmgr);
+- return 0;
+-}
+-
+-static void pem_fini(struct pp_eventmgr *eventmgr)
+-{
+- struct pem_event_data event_data = { {0} };
+-
+- pem_uninit_featureInfo(eventmgr);
+- pem_unregister_interrupts(eventmgr);
+-
+- pem_handle_event(eventmgr, AMD_PP_EVENT_UNINITIALIZE, &event_data);
+-}
+-
+-int eventmgr_early_init(struct pp_instance *handle)
+-{
+- struct pp_eventmgr *eventmgr;
+-
+- if (handle == NULL)
+- return -EINVAL;
+-
+- eventmgr = kzalloc(sizeof(struct pp_eventmgr), GFP_KERNEL);
+- if (eventmgr == NULL)
+- return -ENOMEM;
+-
+- eventmgr->hwmgr = handle->hwmgr;
+- handle->eventmgr = eventmgr;
+-
+- eventmgr->platform_descriptor = &(eventmgr->hwmgr->platform_descriptor);
+- eventmgr->pp_eventmgr_init = pem_init;
+- eventmgr->pp_eventmgr_fini = pem_fini;
+-
+- return 0;
+-}
+-
+-static int pem_handle_event_unlocked(struct pp_eventmgr *eventmgr, enum amd_pp_event event, struct pem_event_data *data)
+-{
+- if (eventmgr == NULL || event >= AMD_PP_EVENT_MAX || data == NULL)
+- return -EINVAL;
+-
+- return pem_excute_event_chain(eventmgr, eventmgr->event_chain[event], data);
+-}
+-
+-int pem_handle_event(struct pp_eventmgr *eventmgr, enum amd_pp_event event, struct pem_event_data *event_data)
+-{
+- int r = 0;
+-
+- r = pem_handle_event_unlocked(eventmgr, event, event_data);
+-
+- return r;
+-}
+-
+-bool pem_is_hw_access_blocked(struct pp_eventmgr *eventmgr)
+-{
+- return (eventmgr->block_adjust_power_state || phm_is_hw_access_blocked(eventmgr->hwmgr));
+-}
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.c b/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.c
+deleted file mode 100644
+index b82c43a..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.c
++++ /dev/null
+@@ -1,410 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-
+-#include "eventmgr.h"
+-#include "eventsubchains.h"
+-#include "eventtasks.h"
+-#include "hardwaremanager.h"
+-
+-const pem_event_action reset_display_phy_access_tasks[] = {
+- pem_task_reset_display_phys_access,
+- NULL
+-};
+-
+-const pem_event_action broadcast_power_policy_tasks[] = {
+- /* PEM_Task_BroadcastPowerPolicyChange, */
+- NULL
+-};
+-
+-const pem_event_action unregister_interrupt_tasks[] = {
+- pem_task_unregister_interrupts,
+- NULL
+-};
+-
+-/* Disable GFX Voltage Islands Power Gating */
+-const pem_event_action disable_gfx_voltage_island_powergating_tasks[] = {
+- pem_task_disable_voltage_island_power_gating,
+- NULL
+-};
+-
+-const pem_event_action disable_gfx_clockgating_tasks[] = {
+- pem_task_disable_gfx_clock_gating,
+- NULL
+-};
+-
+-const pem_event_action block_adjust_power_state_tasks[] = {
+- pem_task_block_adjust_power_state,
+- NULL
+-};
+-
+-
+-const pem_event_action unblock_adjust_power_state_tasks[] = {
+- pem_task_unblock_adjust_power_state,
+- NULL
+-};
+-
+-const pem_event_action set_performance_state_tasks[] = {
+- pem_task_set_performance_state,
+- NULL
+-};
+-
+-const pem_event_action get_2d_performance_state_tasks[] = {
+- pem_task_get_2D_performance_state_id,
+- NULL
+-};
+-
+-const pem_event_action conditionally_force3D_performance_state_tasks[] = {
+- pem_task_conditionally_force_3d_performance_state,
+- NULL
+-};
+-
+-const pem_event_action process_vbios_eventinfo_tasks[] = {
+- /* PEM_Task_ProcessVbiosEventInfo,*/
+- NULL
+-};
+-
+-const pem_event_action enable_dynamic_state_management_tasks[] = {
+- /* PEM_Task_ResetBAPMPolicyChangedFlag,*/
+- pem_task_get_boot_state_id,
+- pem_task_enable_dynamic_state_management,
+- pem_task_register_interrupts,
+- NULL
+-};
+-
+-const pem_event_action enable_clock_power_gatings_tasks[] = {
+- pem_task_enable_clock_power_gatings_tasks,
+- pem_task_powerdown_uvd_tasks,
+- pem_task_powerdown_vce_tasks,
+- NULL
+-};
+-
+-const pem_event_action setup_asic_tasks[] = {
+- pem_task_setup_asic,
+- NULL
+-};
+-
+-const pem_event_action power_budget_tasks[] = {
+- /* TODO
+- * PEM_Task_PowerBudgetWaiverAvailable,
+- * PEM_Task_PowerBudgetWarningMessage,
+- * PEM_Task_PruneStatesBasedOnPowerBudget,
+- */
+- NULL
+-};
+-
+-const pem_event_action system_config_tasks[] = {
+- /* PEM_Task_PruneStatesBasedOnSystemConfig,*/
+- NULL
+-};
+-
+-
+-const pem_event_action conditionally_force_3d_performance_state_tasks[] = {
+- pem_task_conditionally_force_3d_performance_state,
+- NULL
+-};
+-
+-const pem_event_action ungate_all_display_phys_tasks[] = {
+- /* PEM_Task_GetDisplayPhyAccessInfo */
+- NULL
+-};
+-
+-const pem_event_action uninitialize_display_phy_access_tasks[] = {
+- /* PEM_Task_UninitializeDisplayPhysAccess, */
+- NULL
+-};
+-
+-const pem_event_action disable_gfx_voltage_island_power_gating_tasks[] = {
+- /* PEM_Task_DisableVoltageIslandPowerGating, */
+- NULL
+-};
+-
+-const pem_event_action disable_gfx_clock_gating_tasks[] = {
+- pem_task_disable_gfx_clock_gating,
+- NULL
+-};
+-
+-const pem_event_action set_boot_state_tasks[] = {
+- pem_task_get_boot_state_id,
+- pem_task_set_boot_state,
+- NULL
+-};
+-
+-const pem_event_action adjust_power_state_tasks[] = {
+- pem_task_notify_hw_mgr_display_configuration_change,
+- pem_task_adjust_power_state,
+- pem_task_notify_smc_display_config_after_power_state_adjustment,
+- pem_task_update_allowed_performance_levels,
+- /* to do pem_task_Enable_disable_bapm, */
+- NULL
+-};
+-
+-const pem_event_action disable_dynamic_state_management_tasks[] = {
+- pem_task_unregister_interrupts,
+- pem_task_get_boot_state_id,
+- pem_task_disable_dynamic_state_management,
+- NULL
+-};
+-
+-const pem_event_action disable_clock_power_gatings_tasks[] = {
+- pem_task_disable_clock_power_gatings_tasks,
+- NULL
+-};
+-
+-const pem_event_action cleanup_asic_tasks[] = {
+- /* PEM_Task_DisableFPS,*/
+- pem_task_cleanup_asic,
+- NULL
+-};
+-
+-const pem_event_action prepare_for_pnp_stop_tasks[] = {
+- /* PEM_Task_PrepareForPnpStop,*/
+- NULL
+-};
+-
+-const pem_event_action set_power_source_tasks[] = {
+- pem_task_set_power_source,
+- pem_task_notify_hw_of_power_source,
+- NULL
+-};
+-
+-const pem_event_action set_power_saving_state_tasks[] = {
+- pem_task_reset_power_saving_state,
+- pem_task_get_power_saving_state,
+- pem_task_set_power_saving_state,
+- /* PEM_Task_ResetODDCState,
+- * PEM_Task_GetODDCState,
+- * PEM_Task_SetODDCState,*/
+- NULL
+-};
+-
+-const pem_event_action enable_disable_fps_tasks[] = {
+- /* PEM_Task_EnableDisableFPS,*/
+- NULL
+-};
+-
+-const pem_event_action set_nbmcu_state_tasks[] = {
+- /* PEM_Task_NBMCUStateChange,*/
+- NULL
+-};
+-
+-const pem_event_action reset_hardware_dc_notification_tasks[] = {
+- /* PEM_Task_ResetHardwareDCNotification,*/
+- NULL
+-};
+-
+-
+-const pem_event_action notify_smu_suspend_tasks[] = {
+- /* PEM_Task_NotifySMUSuspend,*/
+- NULL
+-};
+-
+-const pem_event_action disable_smc_firmware_ctf_tasks[] = {
+- pem_task_disable_smc_firmware_ctf,
+- NULL
+-};
+-
+-const pem_event_action disable_fps_tasks[] = {
+- /* PEM_Task_DisableFPS,*/
+- NULL
+-};
+-
+-const pem_event_action vari_bright_suspend_tasks[] = {
+- /* PEM_Task_VariBright_Suspend,*/
+- NULL
+-};
+-
+-const pem_event_action reset_fan_speed_to_default_tasks[] = {
+- /* PEM_Task_ResetFanSpeedToDefault,*/
+- NULL
+-};
+-
+-const pem_event_action power_down_asic_tasks[] = {
+- /* PEM_Task_DisableFPS,*/
+- pem_task_power_down_asic,
+- NULL
+-};
+-
+-const pem_event_action disable_stutter_mode_tasks[] = {
+- /* PEM_Task_DisableStutterMode,*/
+- NULL
+-};
+-
+-const pem_event_action set_connected_standby_tasks[] = {
+- /* PEM_Task_SetConnectedStandby,*/
+- NULL
+-};
+-
+-const pem_event_action block_hw_access_tasks[] = {
+- pem_task_block_hw_access,
+- NULL
+-};
+-
+-const pem_event_action unblock_hw_access_tasks[] = {
+- pem_task_un_block_hw_access,
+- NULL
+-};
+-
+-const pem_event_action resume_connected_standby_tasks[] = {
+- /* PEM_Task_ResumeConnectedStandby,*/
+- NULL
+-};
+-
+-const pem_event_action notify_smu_resume_tasks[] = {
+- /* PEM_Task_NotifySMUResume,*/
+- NULL
+-};
+-
+-const pem_event_action reset_display_configCounter_tasks[] = {
+- pem_task_reset_display_phys_access,
+- NULL
+-};
+-
+-const pem_event_action update_dal_configuration_tasks[] = {
+- /* PEM_Task_CheckVBlankTime,*/
+- NULL
+-};
+-
+-const pem_event_action vari_bright_resume_tasks[] = {
+- /* PEM_Task_VariBright_Resume,*/
+- NULL
+-};
+-
+-const pem_event_action notify_hw_power_source_tasks[] = {
+- pem_task_notify_hw_of_power_source,
+- NULL
+-};
+-
+-const pem_event_action process_vbios_event_info_tasks[] = {
+- /* PEM_Task_ProcessVbiosEventInfo,*/
+- NULL
+-};
+-
+-const pem_event_action enable_gfx_clock_gating_tasks[] = {
+- pem_task_enable_gfx_clock_gating,
+- NULL
+-};
+-
+-const pem_event_action enable_gfx_voltage_island_power_gating_tasks[] = {
+- pem_task_enable_voltage_island_power_gating,
+- NULL
+-};
+-
+-const pem_event_action reset_clock_gating_tasks[] = {
+- /* PEM_Task_ResetClockGating*/
+- NULL
+-};
+-
+-const pem_event_action notify_smu_vpu_recovery_end_tasks[] = {
+- /* PEM_Task_NotifySmuVPURecoveryEnd,*/
+- NULL
+-};
+-
+-const pem_event_action disable_vpu_cap_tasks[] = {
+- /* PEM_Task_DisableVPUCap,*/
+- NULL
+-};
+-
+-const pem_event_action execute_escape_sequence_tasks[] = {
+- /* PEM_Task_ExecuteEscapesequence,*/
+- NULL
+-};
+-
+-const pem_event_action notify_power_state_change_tasks[] = {
+- pem_task_notify_power_state_change,
+- NULL
+-};
+-
+-const pem_event_action enable_cgpg_tasks[] = {
+- pem_task_enable_cgpg,
+- NULL
+-};
+-
+-const pem_event_action disable_cgpg_tasks[] = {
+- pem_task_disable_cgpg,
+- NULL
+-};
+-
+-const pem_event_action enable_user_2d_performance_tasks[] = {
+- /* PEM_Task_SetUser2DPerformanceFlag,*/
+- /* PEM_Task_UpdateUser2DPerformanceEnableEvents,*/
+- NULL
+-};
+-
+-const pem_event_action add_user_2d_performance_state_tasks[] = {
+- /* PEM_Task_Get2DPerformanceTemplate,*/
+- /* PEM_Task_AllocateNewPowerStateMemory,*/
+- /* PEM_Task_CopyNewPowerStateInfo,*/
+- /* PEM_Task_UpdateNewPowerStateClocks,*/
+- /* PEM_Task_UpdateNewPowerStateUser2DPerformanceFlag,*/
+- /* PEM_Task_AddPowerState,*/
+- /* PEM_Task_ReleaseNewPowerStateMemory,*/
+- NULL
+-};
+-
+-const pem_event_action delete_user_2d_performance_state_tasks[] = {
+- /* PEM_Task_GetCurrentUser2DPerformanceStateID,*/
+- /* PEM_Task_DeletePowerState,*/
+- /* PEM_Task_SetCurrentUser2DPerformanceStateID,*/
+- NULL
+-};
+-
+-const pem_event_action disable_user_2d_performance_tasks[] = {
+- /* PEM_Task_ResetUser2DPerformanceFlag,*/
+- /* PEM_Task_UpdateUser2DPerformanceDisableEvents,*/
+- NULL
+-};
+-
+-const pem_event_action enable_stutter_mode_tasks[] = {
+- pem_task_enable_stutter_mode,
+- NULL
+-};
+-
+-const pem_event_action enable_disable_bapm_tasks[] = {
+- /*PEM_Task_EnableDisableBAPM,*/
+- NULL
+-};
+-
+-const pem_event_action reset_boot_state_tasks[] = {
+- pem_task_reset_boot_state,
+- NULL
+-};
+-
+-const pem_event_action create_new_user_performance_state_tasks[] = {
+- pem_task_create_user_performance_state,
+- NULL
+-};
+-
+-const pem_event_action initialize_thermal_controller_tasks[] = {
+- pem_task_initialize_thermal_controller,
+- NULL
+-};
+-
+-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
+deleted file mode 100644
+index 7714cb92..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventsubchains.h
++++ /dev/null
+@@ -1,100 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-
+-#ifndef _EVENT_SUB_CHAINS_H_
+-#define _EVENT_SUB_CHAINS_H_
+-
+-#include "eventmgr.h"
+-
+-extern const pem_event_action reset_display_phy_access_tasks[];
+-extern const pem_event_action broadcast_power_policy_tasks[];
+-extern const pem_event_action unregister_interrupt_tasks[];
+-extern const pem_event_action disable_GFX_voltage_island_powergating_tasks[];
+-extern const pem_event_action disable_GFX_clockgating_tasks[];
+-extern const pem_event_action block_adjust_power_state_tasks[];
+-extern const pem_event_action unblock_adjust_power_state_tasks[];
+-extern const pem_event_action set_performance_state_tasks[];
+-extern const pem_event_action get_2D_performance_state_tasks[];
+-extern const pem_event_action conditionally_force3D_performance_state_tasks[];
+-extern const pem_event_action process_vbios_eventinfo_tasks[];
+-extern const pem_event_action enable_dynamic_state_management_tasks[];
+-extern const pem_event_action enable_clock_power_gatings_tasks[];
+-extern const pem_event_action conditionally_force3D_performance_state_tasks[];
+-extern const pem_event_action setup_asic_tasks[];
+-extern const pem_event_action power_budget_tasks[];
+-extern const pem_event_action system_config_tasks[];
+-extern const pem_event_action get_2d_performance_state_tasks[];
+-extern const pem_event_action conditionally_force_3d_performance_state_tasks[];
+-extern const pem_event_action ungate_all_display_phys_tasks[];
+-extern const pem_event_action uninitialize_display_phy_access_tasks[];
+-extern const pem_event_action disable_gfx_voltage_island_power_gating_tasks[];
+-extern const pem_event_action disable_gfx_clock_gating_tasks[];
+-extern const pem_event_action set_boot_state_tasks[];
+-extern const pem_event_action adjust_power_state_tasks[];
+-extern const pem_event_action disable_dynamic_state_management_tasks[];
+-extern const pem_event_action disable_clock_power_gatings_tasks[];
+-extern const pem_event_action cleanup_asic_tasks[];
+-extern const pem_event_action prepare_for_pnp_stop_tasks[];
+-extern const pem_event_action set_power_source_tasks[];
+-extern const pem_event_action set_power_saving_state_tasks[];
+-extern const pem_event_action enable_disable_fps_tasks[];
+-extern const pem_event_action set_nbmcu_state_tasks[];
+-extern const pem_event_action reset_hardware_dc_notification_tasks[];
+-extern const pem_event_action notify_smu_suspend_tasks[];
+-extern const pem_event_action disable_smc_firmware_ctf_tasks[];
+-extern const pem_event_action disable_fps_tasks[];
+-extern const pem_event_action vari_bright_suspend_tasks[];
+-extern const pem_event_action reset_fan_speed_to_default_tasks[];
+-extern const pem_event_action power_down_asic_tasks[];
+-extern const pem_event_action disable_stutter_mode_tasks[];
+-extern const pem_event_action set_connected_standby_tasks[];
+-extern const pem_event_action block_hw_access_tasks[];
+-extern const pem_event_action unblock_hw_access_tasks[];
+-extern const pem_event_action resume_connected_standby_tasks[];
+-extern const pem_event_action notify_smu_resume_tasks[];
+-extern const pem_event_action reset_display_configCounter_tasks[];
+-extern const pem_event_action update_dal_configuration_tasks[];
+-extern const pem_event_action vari_bright_resume_tasks[];
+-extern const pem_event_action notify_hw_power_source_tasks[];
+-extern const pem_event_action process_vbios_event_info_tasks[];
+-extern const pem_event_action enable_gfx_clock_gating_tasks[];
+-extern const pem_event_action enable_gfx_voltage_island_power_gating_tasks[];
+-extern const pem_event_action reset_clock_gating_tasks[];
+-extern const pem_event_action notify_smu_vpu_recovery_end_tasks[];
+-extern const pem_event_action disable_vpu_cap_tasks[];
+-extern const pem_event_action execute_escape_sequence_tasks[];
+-extern const pem_event_action notify_power_state_change_tasks[];
+-extern const pem_event_action enable_cgpg_tasks[];
+-extern const pem_event_action disable_cgpg_tasks[];
+-extern const pem_event_action enable_user_2d_performance_tasks[];
+-extern const pem_event_action add_user_2d_performance_state_tasks[];
+-extern const pem_event_action delete_user_2d_performance_state_tasks[];
+-extern const pem_event_action disable_user_2d_performance_tasks[];
+-extern const pem_event_action enable_stutter_mode_tasks[];
+-extern const pem_event_action enable_disable_bapm_tasks[];
+-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
+deleted file mode 100644
+index 8c4ebaa..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c
++++ /dev/null
+@@ -1,445 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-
+-#include "eventmgr.h"
+-#include "eventinit.h"
+-#include "eventmanagement.h"
+-#include "eventmanager.h"
+-#include "hardwaremanager.h"
+-#include "eventtasks.h"
+-#include "power_state.h"
+-#include "hwmgr.h"
+-#include "amd_powerplay.h"
+-#include "psm.h"
+-
+-#define TEMP_RANGE_MIN (90 * 1000)
+-#define TEMP_RANGE_MAX (120 * 1000)
+-
+-int pem_task_update_allowed_performance_levels(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+-
+- if (eventmgr == NULL || eventmgr->hwmgr == NULL)
+- return -EINVAL;
+-
+- if (pem_is_hw_access_blocked(eventmgr))
+- return 0;
+-
+- phm_force_dpm_levels(eventmgr->hwmgr, eventmgr->hwmgr->dpm_level);
+-
+- return 0;
+-}
+-
+-/* eventtasks_generic.c */
+-int pem_task_adjust_power_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- struct pp_hwmgr *hwmgr;
+-
+- if (pem_is_hw_access_blocked(eventmgr))
+- return 0;
+-
+- hwmgr = eventmgr->hwmgr;
+- if (event_data->pnew_power_state != NULL)
+- hwmgr->request_ps = event_data->pnew_power_state;
+-
+- if (phm_cap_enabled(eventmgr->platform_descriptor->platformCaps, PHM_PlatformCaps_DynamicPatchPowerState))
+- psm_adjust_power_state_dynamic(eventmgr, event_data->skip_state_adjust_rules);
+- else
+- psm_adjust_power_state_static(eventmgr, event_data->skip_state_adjust_rules);
+-
+- return 0;
+-}
+-
+-int pem_task_power_down_asic(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- return phm_power_down_asic(eventmgr->hwmgr);
+-}
+-
+-int pem_task_set_boot_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- if (pem_is_event_data_valid(event_data->valid_fields, PEM_EventDataValid_RequestedStateID))
+- return psm_set_states(eventmgr, &(event_data->requested_state_id));
+-
+- return 0;
+-}
+-
+-int pem_task_reset_boot_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_update_new_power_state_clocks(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_system_shutdown(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_register_interrupts(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_unregister_interrupts(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- return pem_unregister_interrupts(eventmgr);
+-}
+-
+-int pem_task_get_boot_state_id(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- int result;
+-
+- result = psm_get_state_by_classification(eventmgr,
+- PP_StateClassificationFlag_Boot,
+- &(event_data->requested_state_id)
+- );
+-
+- if (0 == result)
+- pem_set_event_data_valid(event_data->valid_fields, PEM_EventDataValid_RequestedStateID);
+- else
+- pem_unset_event_data_valid(event_data->valid_fields, PEM_EventDataValid_RequestedStateID);
+-
+- return result;
+-}
+-
+-int pem_task_enable_dynamic_state_management(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- return phm_enable_dynamic_state_management(eventmgr->hwmgr);
+-}
+-
+-int pem_task_disable_dynamic_state_management(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- return phm_disable_dynamic_state_management(eventmgr->hwmgr);
+-}
+-
+-int pem_task_enable_clock_power_gatings_tasks(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- return phm_enable_clock_power_gatings(eventmgr->hwmgr);
+-}
+-
+-int pem_task_powerdown_uvd_tasks(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- return phm_powerdown_uvd(eventmgr->hwmgr);
+-}
+-
+-int pem_task_powerdown_vce_tasks(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- phm_powergate_uvd(eventmgr->hwmgr, true);
+- phm_powergate_vce(eventmgr->hwmgr, true);
+- return 0;
+-}
+-
+-int pem_task_disable_clock_power_gatings_tasks(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- phm_disable_clock_power_gatings(eventmgr->hwmgr);
+- return 0;
+-}
+-
+-int pem_task_start_asic_block_usage(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_stop_asic_block_usage(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_disable_smc_firmware_ctf(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- return phm_disable_smc_firmware_ctf(eventmgr->hwmgr);
+-}
+-
+-int pem_task_setup_asic(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- return phm_setup_asic(eventmgr->hwmgr);
+-}
+-
+-int pem_task_cleanup_asic(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_store_dal_configuration(struct pp_eventmgr *eventmgr, const struct amd_display_configuration *display_config)
+-{
+- /* TODO */
+- return 0;
+- /*phm_store_dal_configuration_data(eventmgr->hwmgr, display_config) */
+-}
+-
+-int pem_task_notify_hw_mgr_display_configuration_change(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- if (pem_is_hw_access_blocked(eventmgr))
+- return 0;
+-
+- return phm_display_configuration_changed(eventmgr->hwmgr);
+-}
+-
+-int pem_task_notify_hw_mgr_pre_display_configuration_change(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- return 0;
+-}
+-
+-int pem_task_notify_smc_display_config_after_power_state_adjustment(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- if (pem_is_hw_access_blocked(eventmgr))
+- return 0;
+-
+- return phm_notify_smc_display_config_after_ps_adjustment(eventmgr->hwmgr);
+-}
+-
+-int pem_task_block_adjust_power_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- eventmgr->block_adjust_power_state = true;
+- /* to do PHM_ResetIPSCounter(pEventMgr->pHwMgr);*/
+- return 0;
+-}
+-
+-int pem_task_unblock_adjust_power_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- eventmgr->block_adjust_power_state = false;
+- return 0;
+-}
+-
+-int pem_task_notify_power_state_change(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_block_hw_access(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_un_block_hw_access(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_reset_display_phys_access(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_set_cpu_power_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- return phm_set_cpu_power_state(eventmgr->hwmgr);
+-}
+-
+-/*powersaving*/
+-
+-int pem_task_set_power_source(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_notify_hw_of_power_source(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_get_power_saving_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_reset_power_saving_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_set_power_saving_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_set_screen_state_on(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_set_screen_state_off(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_enable_voltage_island_power_gating(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_disable_voltage_island_power_gating(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_enable_cgpg(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_disable_cgpg(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_enable_clock_power_gating(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-
+-int pem_task_enable_gfx_clock_gating(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_disable_gfx_clock_gating(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-
+-/* performance */
+-int pem_task_set_performance_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- if (pem_is_event_data_valid(event_data->valid_fields, PEM_EventDataValid_RequestedStateID))
+- return psm_set_states(eventmgr, &(event_data->requested_state_id));
+-
+- return 0;
+-}
+-
+-int pem_task_conditionally_force_3d_performance_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_enable_stutter_mode(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- /* TODO */
+- return 0;
+-}
+-
+-int pem_task_get_2D_performance_state_id(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- int result;
+-
+- if (eventmgr->features[PP_Feature_PowerPlay].supported &&
+- !(eventmgr->features[PP_Feature_PowerPlay].enabled))
+- result = psm_get_state_by_classification(eventmgr,
+- PP_StateClassificationFlag_Boot,
+- &(event_data->requested_state_id));
+- else if (eventmgr->features[PP_Feature_User2DPerformance].enabled)
+- result = psm_get_state_by_classification(eventmgr,
+- PP_StateClassificationFlag_User2DPerformance,
+- &(event_data->requested_state_id));
+- else
+- result = psm_get_ui_state(eventmgr, PP_StateUILabel_Performance,
+- &(event_data->requested_state_id));
+-
+- if (0 == result)
+- pem_set_event_data_valid(event_data->valid_fields, PEM_EventDataValid_RequestedStateID);
+- else
+- pem_unset_event_data_valid(event_data->valid_fields, PEM_EventDataValid_RequestedStateID);
+-
+- return result;
+-}
+-
+-int pem_task_create_user_performance_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- struct pp_power_state *state;
+- int table_entries;
+- struct pp_hwmgr *hwmgr = eventmgr->hwmgr;
+- int i;
+-
+- table_entries = hwmgr->num_ps;
+- state = hwmgr->ps;
+-
+-restart_search:
+- for (i = 0; i < table_entries; i++) {
+- if (state->classification.ui_label & event_data->requested_ui_label) {
+- event_data->pnew_power_state = state;
+- return 0;
+- }
+- state = (struct pp_power_state *)((unsigned long)state + hwmgr->ps_size);
+- }
+-
+- switch (event_data->requested_ui_label) {
+- case PP_StateUILabel_Battery:
+- case PP_StateUILabel_Balanced:
+- event_data->requested_ui_label = PP_StateUILabel_Performance;
+- goto restart_search;
+- default:
+- break;
+- }
+- return -1;
+-}
+-
+-int pem_task_initialize_thermal_controller(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- struct PP_TemperatureRange range;
+-
+- range.max = TEMP_RANGE_MAX;
+- range.min = TEMP_RANGE_MIN;
+-
+- if (eventmgr == NULL || eventmgr->platform_descriptor == NULL)
+- return -EINVAL;
+-
+- if (phm_cap_enabled(eventmgr->platform_descriptor->platformCaps, PHM_PlatformCaps_ThermalController))
+- return phm_start_thermal_controller(eventmgr->hwmgr, &range);
+-
+- return 0;
+-}
+-
+-int pem_task_uninitialize_thermal_controller(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
+-{
+- return phm_stop_thermal_controller(eventmgr->hwmgr);
+-}
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.h b/drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.h
+deleted file mode 100644
+index 37e7ca5..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.h
++++ /dev/null
+@@ -1,89 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-
+-#ifndef _EVENT_TASKS_H_
+-#define _EVENT_TASKS_H_
+-#include "eventmgr.h"
+-
+-struct amd_display_configuration;
+-
+-/* eventtasks_generic.c */
+-int pem_task_adjust_power_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_power_down_asic(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_get_boot_state_id(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_set_boot_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_reset_boot_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_update_new_power_state_clocks(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_system_shutdown(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_register_interrupts(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_unregister_interrupts(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_enable_dynamic_state_management(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_disable_dynamic_state_management(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_enable_clock_power_gatings_tasks(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_powerdown_uvd_tasks(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_powerdown_vce_tasks(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_disable_clock_power_gatings_tasks(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_start_asic_block_usage(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_stop_asic_block_usage(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_setup_asic(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_cleanup_asic(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_store_dal_configuration (struct pp_eventmgr *eventmgr, const struct amd_display_configuration *display_config);
+-int pem_task_notify_hw_mgr_display_configuration_change(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_notify_hw_mgr_pre_display_configuration_change(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_block_adjust_power_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_unblock_adjust_power_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_notify_power_state_change(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_block_hw_access(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_un_block_hw_access(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_reset_display_phys_access(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_set_cpu_power_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_notify_smc_display_config_after_power_state_adjustment(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-/*powersaving*/
+-
+-int pem_task_set_power_source(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_notify_hw_of_power_source(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_get_power_saving_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_reset_power_saving_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_set_power_saving_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_set_screen_state_on(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_set_screen_state_off(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_enable_voltage_island_power_gating(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_disable_voltage_island_power_gating(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_enable_cgpg(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_disable_cgpg(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_enable_gfx_clock_gating(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_disable_gfx_clock_gating(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_enable_stutter_mode(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-
+-/* performance */
+-int pem_task_set_performance_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_conditionally_force_3d_performance_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_get_2D_performance_state_id(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_create_user_performance_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_update_allowed_performance_levels(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-/*thermal */
+-int pem_task_initialize_thermal_controller(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_uninitialize_thermal_controller(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-int pem_task_disable_smc_firmware_ctf(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data);
+-
+-#endif /* _EVENT_TASKS_H_ */
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/psm.c b/drivers/gpu/drm/amd/powerplay/eventmgr/psm.c
+deleted file mode 100644
+index 4899088..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/psm.c
++++ /dev/null
+@@ -1,119 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-#include "psm.h"
+-
+-int psm_get_ui_state(struct pp_eventmgr *eventmgr, enum PP_StateUILabel ui_label, unsigned long *state_id)
+-{
+- struct pp_power_state *state;
+- int table_entries;
+- struct pp_hwmgr *hwmgr = eventmgr->hwmgr;
+- int i;
+-
+- table_entries = hwmgr->num_ps;
+- state = hwmgr->ps;
+-
+- for (i = 0; i < table_entries; i++) {
+- if (state->classification.ui_label & ui_label) {
+- *state_id = state->id;
+- return 0;
+- }
+- state = (struct pp_power_state *)((unsigned long)state + hwmgr->ps_size);
+- }
+- return -1;
+-}
+-
+-int psm_get_state_by_classification(struct pp_eventmgr *eventmgr, enum PP_StateClassificationFlag flag, unsigned long *state_id)
+-{
+- struct pp_power_state *state;
+- int table_entries;
+- struct pp_hwmgr *hwmgr = eventmgr->hwmgr;
+- int i;
+-
+- table_entries = hwmgr->num_ps;
+- state = hwmgr->ps;
+-
+- for (i = 0; i < table_entries; i++) {
+- if (state->classification.flags & flag) {
+- *state_id = state->id;
+- return 0;
+- }
+- state = (struct pp_power_state *)((unsigned long)state + hwmgr->ps_size);
+- }
+- return -1;
+-}
+-
+-int psm_set_states(struct pp_eventmgr *eventmgr, unsigned long *state_id)
+-{
+- struct pp_power_state *state;
+- int table_entries;
+- struct pp_hwmgr *hwmgr = eventmgr->hwmgr;
+- int i;
+-
+- table_entries = hwmgr->num_ps;
+-
+- state = hwmgr->ps;
+-
+- for (i = 0; i < table_entries; i++) {
+- if (state->id == *state_id) {
+- memcpy(hwmgr->request_ps, state, hwmgr->ps_size);
+- return 0;
+- }
+- state = (struct pp_power_state *)((unsigned long)state + hwmgr->ps_size);
+- }
+- return -1;
+-}
+-
+-int psm_adjust_power_state_dynamic(struct pp_eventmgr *eventmgr, bool skip)
+-{
+-
+- struct pp_power_state *pcurrent;
+- struct pp_power_state *requested;
+- struct pp_hwmgr *hwmgr;
+- bool equal;
+-
+- if (skip)
+- return 0;
+-
+- hwmgr = eventmgr->hwmgr;
+- pcurrent = hwmgr->current_ps;
+- requested = hwmgr->request_ps;
+-
+- if (requested == NULL)
+- return 0;
+-
+- phm_apply_state_adjust_rules(hwmgr, requested, pcurrent);
+-
+- if (pcurrent == NULL || (0 != phm_check_states_equal(hwmgr, &pcurrent->hardware, &requested->hardware, &equal)))
+- equal = false;
+-
+- if (!equal || phm_check_smc_update_required_for_display_configuration(hwmgr)) {
+- phm_set_power_state(hwmgr, &pcurrent->hardware, &requested->hardware);
+- memcpy(hwmgr->current_ps, hwmgr->request_ps, hwmgr->ps_size);
+- }
+- return 0;
+-}
+-
+-int psm_adjust_power_state_static(struct pp_eventmgr *eventmgr, bool skip)
+-{
+- return 0;
+-}
+diff --git a/drivers/gpu/drm/amd/powerplay/eventmgr/psm.h b/drivers/gpu/drm/amd/powerplay/eventmgr/psm.h
+deleted file mode 100644
+index fbdff3e..0000000
+--- a/drivers/gpu/drm/amd/powerplay/eventmgr/psm.h
++++ /dev/null
+@@ -1,38 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-#include "eventmgr.h"
+-#include "eventinit.h"
+-#include "eventmanagement.h"
+-#include "eventmanager.h"
+-#include "power_state.h"
+-#include "hardwaremanager.h"
+-
+-int psm_get_ui_state(struct pp_eventmgr *eventmgr, enum PP_StateUILabel ui_label, unsigned long *state_id);
+-
+-int psm_get_state_by_classification(struct pp_eventmgr *eventmgr, enum PP_StateClassificationFlag flag, unsigned long *state_id);
+-
+-int psm_set_states(struct pp_eventmgr *eventmgr, unsigned long *state_id);
+-
+-int psm_adjust_power_state_dynamic(struct pp_eventmgr *eventmgr, bool skip);
+-
+-int psm_adjust_power_state_static(struct pp_eventmgr *eventmgr, bool skip);
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/eventmanager.h b/drivers/gpu/drm/amd/powerplay/inc/eventmanager.h
+deleted file mode 100644
+index b9d84de..0000000
+--- a/drivers/gpu/drm/amd/powerplay/inc/eventmanager.h
++++ /dev/null
+@@ -1,109 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-#ifndef _EVENT_MANAGER_H_
+-#define _EVENT_MANAGER_H_
+-
+-#include "power_state.h"
+-#include "pp_power_source.h"
+-#include "hardwaremanager.h"
+-#include "pp_asicblocks.h"
+-
+-struct pp_eventmgr;
+-enum amd_pp_event;
+-
+-enum PEM_EventDataValid {
+- PEM_EventDataValid_RequestedStateID = 0,
+- PEM_EventDataValid_RequestedUILabel,
+- PEM_EventDataValid_NewPowerState,
+- PEM_EventDataValid_RequestedPowerSource,
+- PEM_EventDataValid_RequestedClocks,
+- PEM_EventDataValid_CurrentTemperature,
+- PEM_EventDataValid_AsicBlocks,
+- PEM_EventDataValid_ODParameters,
+- PEM_EventDataValid_PXAdapterPrefs,
+- PEM_EventDataValid_PXUserPrefs,
+- PEM_EventDataValid_PXSwitchReason,
+- PEM_EventDataValid_PXSwitchPhase,
+- PEM_EventDataValid_HdVideo,
+- PEM_EventDataValid_BacklightLevel,
+- PEM_EventDatavalid_VariBrightParams,
+- PEM_EventDataValid_VariBrightLevel,
+- PEM_EventDataValid_VariBrightImmediateChange,
+- PEM_EventDataValid_PercentWhite,
+- PEM_EventDataValid_SdVideo,
+- PEM_EventDataValid_HTLinkChangeReason,
+- PEM_EventDataValid_HWBlocks,
+- PEM_EventDataValid_RequestedThermalState,
+- PEM_EventDataValid_MvcVideo,
+- PEM_EventDataValid_Max
+-};
+-
+-typedef enum PEM_EventDataValid PEM_EventDataValid;
+-
+-/* Number of bits in ULONG variable */
+-#define PEM_MAX_NUM_EVENTDATAVALID_BITS_PER_FIELD (sizeof(unsigned long)*8)
+-
+-/* Number of ULONG entries used by event data valid bits */
+-#define PEM_MAX_NUM_EVENTDATAVALID_ULONG_ENTRIES \
+- ((PEM_EventDataValid_Max + PEM_MAX_NUM_EVENTDATAVALID_BITS_PER_FIELD - 1) / \
+- PEM_MAX_NUM_EVENTDATAVALID_BITS_PER_FIELD)
+-
+-static inline void pem_set_event_data_valid(unsigned long *fields, PEM_EventDataValid valid_field)
+-{
+- fields[valid_field / PEM_MAX_NUM_EVENTDATAVALID_BITS_PER_FIELD] |=
+- (1UL << (valid_field % PEM_MAX_NUM_EVENTDATAVALID_BITS_PER_FIELD));
+-}
+-
+-static inline void pem_unset_event_data_valid(unsigned long *fields, PEM_EventDataValid valid_field)
+-{
+- fields[valid_field / PEM_MAX_NUM_EVENTDATAVALID_BITS_PER_FIELD] &=
+- ~(1UL << (valid_field % PEM_MAX_NUM_EVENTDATAVALID_BITS_PER_FIELD));
+-}
+-
+-static inline unsigned long pem_is_event_data_valid(const unsigned long *fields, PEM_EventDataValid valid_field)
+-{
+- return fields[valid_field / PEM_MAX_NUM_EVENTDATAVALID_BITS_PER_FIELD] &
+- (1UL << (valid_field % PEM_MAX_NUM_EVENTDATAVALID_BITS_PER_FIELD));
+-}
+-
+-struct pem_event_data {
+- unsigned long valid_fields[100];
+- unsigned long requested_state_id;
+- enum PP_StateUILabel requested_ui_label;
+- struct pp_power_state *pnew_power_state;
+- enum pp_power_source requested_power_source;
+- struct PP_Clocks requested_clocks;
+- bool skip_state_adjust_rules;
+- struct phm_asic_blocks asic_blocks;
+- /* to doPP_ThermalState requestedThermalState;
+- enum ThermalStateRequestSrc requestThermalStateSrc;
+- PP_Temperature currentTemperature;*/
+-
+-};
+-
+-int pem_handle_event(struct pp_eventmgr *eventmgr, enum amd_pp_event event,
+- struct pem_event_data *event_data);
+-
+-bool pem_is_hw_access_blocked(struct pp_eventmgr *eventmgr);
+-
+-#endif /* _EVENT_MANAGER_H_ */
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/eventmgr.h b/drivers/gpu/drm/amd/powerplay/inc/eventmgr.h
+deleted file mode 100644
+index 7bd8a7e..0000000
+--- a/drivers/gpu/drm/amd/powerplay/inc/eventmgr.h
++++ /dev/null
+@@ -1,124 +0,0 @@
+-/*
+- * Copyright 2015 Advanced Micro Devices, Inc.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice shall be included in
+- * all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- *
+- */
+-
+-#ifndef _EVENTMGR_H_
+-#define _EVENTMGR_H_
+-
+-#include <linux/mutex.h>
+-#include "pp_instance.h"
+-#include "hardwaremanager.h"
+-#include "eventmanager.h"
+-#include "pp_feature.h"
+-#include "pp_power_source.h"
+-#include "power_state.h"
+-
+-typedef int (*pem_event_action)(struct pp_eventmgr *eventmgr,
+- struct pem_event_data *event_data);
+-
+-struct action_chain {
+- const char *description; /* action chain description for debugging purpose */
+- const pem_event_action * const *action_chain; /* pointer to chain of event actions */
+-};
+-
+-struct pem_power_source_ui_state_info {
+- enum PP_StateUILabel current_ui_label;
+- enum PP_StateUILabel default_ui_lable;
+- unsigned long configurable_ui_mapping;
+-};
+-
+-struct pp_clock_range {
+- uint32_t min_sclk_khz;
+- uint32_t max_sclk_khz;
+-
+- uint32_t min_mclk_khz;
+- uint32_t max_mclk_khz;
+-
+- uint32_t min_vclk_khz;
+- uint32_t max_vclk_khz;
+-
+- uint32_t min_dclk_khz;
+- uint32_t max_dclk_khz;
+-
+- uint32_t min_aclk_khz;
+- uint32_t max_aclk_khz;
+-
+- uint32_t min_eclk_khz;
+- uint32_t max_eclk_khz;
+-};
+-
+-enum pp_state {
+- UNINITIALIZED,
+- INACTIVE,
+- ACTIVE
+-};
+-
+-enum pp_ring_index {
+- PP_RING_TYPE_GFX_INDEX = 0,
+- PP_RING_TYPE_DMA_INDEX,
+- PP_RING_TYPE_DMA1_INDEX,
+- PP_RING_TYPE_UVD_INDEX,
+- PP_RING_TYPE_VCE0_INDEX,
+- PP_RING_TYPE_VCE1_INDEX,
+- PP_RING_TYPE_CP1_INDEX,
+- PP_RING_TYPE_CP2_INDEX,
+- PP_NUM_RINGS,
+-};
+-
+-struct pp_request {
+- uint32_t flags;
+- uint32_t sclk;
+- uint32_t sclk_throttle;
+- uint32_t mclk;
+- uint32_t vclk;
+- uint32_t dclk;
+- uint32_t eclk;
+- uint32_t aclk;
+- uint32_t iclk;
+- uint32_t vp8clk;
+- uint32_t rsv[32];
+-};
+-
+-struct pp_eventmgr {
+- struct pp_hwmgr *hwmgr;
+- struct pp_smumgr *smumgr;
+-
+- struct pp_feature_info features[PP_Feature_Max];
+- const struct action_chain *event_chain[AMD_PP_EVENT_MAX];
+- struct phm_platform_descriptor *platform_descriptor;
+- struct pp_clock_range clock_range;
+- enum pp_power_source current_power_source;
+- struct pem_power_source_ui_state_info ui_state_info[PP_PowerSource_Max];
+- enum pp_state states[PP_NUM_RINGS];
+- struct pp_request hi_req;
+- struct list_head context_list;
+- struct mutex lock;
+- bool block_adjust_power_state;
+- bool enable_cg;
+- bool enable_gfx_cgpg;
+- int (*pp_eventmgr_init)(struct pp_eventmgr *eventmgr);
+- void (*pp_eventmgr_fini)(struct pp_eventmgr *eventmgr);
+-};
+-
+-int eventmgr_early_init(struct pp_instance *handle);
+-
+-#endif /* _EVENTMGR_H_ */
+--
+2.7.4
+