Loading drivers/gpu/drm/amd/powerplay/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ subdir-ccflags-y += -Iinclude/drm \ AMD_PP_PATH = ../powerplay PP_LIBS = smumgr hwmgr PP_LIBS = smumgr hwmgr eventmgr AMD_POWERPLAY = $(addsuffix /Makefile,$(addprefix drivers/gpu/drm/amd/powerplay/,$(PP_LIBS))) Loading drivers/gpu/drm/amd/powerplay/amd_powerplay.c +23 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ static int pp_sw_init(void *handle) return -EINVAL; ret = hwmgr->pptable_func->pptable_init(hwmgr); if (ret == 0) ret = hwmgr->hwmgr_func->backend_init(hwmgr); Loading Loading @@ -81,6 +82,7 @@ static int pp_hw_init(void *handle) { struct pp_instance *pp_handle; struct pp_smumgr *smumgr; struct pp_eventmgr *eventmgr; int ret = 0; if (handle == NULL) Loading @@ -106,8 +108,14 @@ static int pp_hw_init(void *handle) smumgr->smumgr_funcs->smu_fini(smumgr); return ret; } hw_init_power_state_table(pp_handle->hwmgr); eventmgr = pp_handle->eventmgr; if (eventmgr == NULL || eventmgr->pp_eventmgr_init == NULL) return -EINVAL; ret = eventmgr->pp_eventmgr_init(eventmgr); return 0; } Loading @@ -115,11 +123,17 @@ static int pp_hw_fini(void *handle) { struct pp_instance *pp_handle; struct pp_smumgr *smumgr; struct pp_eventmgr *eventmgr; if (handle == NULL) return -EINVAL; pp_handle = (struct pp_instance *)handle; eventmgr = pp_handle->eventmgr; if (eventmgr != NULL || eventmgr->pp_eventmgr_fini != NULL) eventmgr->pp_eventmgr_fini(eventmgr); smumgr = pp_handle->smu_mgr; if (smumgr != NULL || smumgr->smumgr_funcs != NULL || Loading Loading @@ -273,9 +287,15 @@ static int amd_pp_instance_init(struct amd_pp_init *pp_init, if (ret) goto fail_hwmgr; ret = eventmgr_init(handle); if (ret) goto fail_eventmgr; amd_pp->pp_handle = handle; return 0; fail_eventmgr: hwmgr_fini(handle->hwmgr); fail_hwmgr: smum_fini(handle->smu_mgr); fail_smum: Loading @@ -286,9 +306,12 @@ static int amd_pp_instance_init(struct amd_pp_init *pp_init, static int amd_pp_instance_fini(void *handle) { struct pp_instance *instance = (struct pp_instance *)handle; if (instance == NULL) return -EINVAL; eventmgr_fini(instance->eventmgr); hwmgr_fini(instance->hwmgr); smum_fini(instance->smu_mgr); Loading drivers/gpu/drm/amd/powerplay/eventmgr/Makefile 0 → 100644 +11 −0 Original line number Diff line number Diff line # # 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) drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c 0 → 100644 +287 −0 Original line number Diff line number Diff line /* * 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 *initialize_event[] = { block_adjust_power_state_tasks, power_budget_tasks, system_config_tasks, setup_asic_tasks, enable_dynamic_state_management_tasks, enable_clock_power_gatings_tasks, get_2d_performance_state_tasks, set_performance_state_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 *uninitialize_event[] = { ungate_all_display_phys_tasks, uninitialize_display_phy_access_tasks, disable_gfx_voltage_island_power_gating_tasks, disable_gfx_clock_gating_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 *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 *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 *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 *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 *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, block_adjust_power_state_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_clock_power_gatings_tasks, enable_disable_bapm_tasks, reset_boot_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 *complete_init_event[] = { 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 *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 *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 *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 *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 *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 *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 *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 *display_config_change_event[] = { /* countDisplayConfigurationChangeEventTasks, */ unblock_adjust_power_state_tasks, /* setCPUPowerState,*/ notify_hw_power_source_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 *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 }; drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.h 0 → 100644 +62 −0 Original line number Diff line number Diff line /* * 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_*/ Loading
drivers/gpu/drm/amd/powerplay/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ subdir-ccflags-y += -Iinclude/drm \ AMD_PP_PATH = ../powerplay PP_LIBS = smumgr hwmgr PP_LIBS = smumgr hwmgr eventmgr AMD_POWERPLAY = $(addsuffix /Makefile,$(addprefix drivers/gpu/drm/amd/powerplay/,$(PP_LIBS))) Loading
drivers/gpu/drm/amd/powerplay/amd_powerplay.c +23 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ static int pp_sw_init(void *handle) return -EINVAL; ret = hwmgr->pptable_func->pptable_init(hwmgr); if (ret == 0) ret = hwmgr->hwmgr_func->backend_init(hwmgr); Loading Loading @@ -81,6 +82,7 @@ static int pp_hw_init(void *handle) { struct pp_instance *pp_handle; struct pp_smumgr *smumgr; struct pp_eventmgr *eventmgr; int ret = 0; if (handle == NULL) Loading @@ -106,8 +108,14 @@ static int pp_hw_init(void *handle) smumgr->smumgr_funcs->smu_fini(smumgr); return ret; } hw_init_power_state_table(pp_handle->hwmgr); eventmgr = pp_handle->eventmgr; if (eventmgr == NULL || eventmgr->pp_eventmgr_init == NULL) return -EINVAL; ret = eventmgr->pp_eventmgr_init(eventmgr); return 0; } Loading @@ -115,11 +123,17 @@ static int pp_hw_fini(void *handle) { struct pp_instance *pp_handle; struct pp_smumgr *smumgr; struct pp_eventmgr *eventmgr; if (handle == NULL) return -EINVAL; pp_handle = (struct pp_instance *)handle; eventmgr = pp_handle->eventmgr; if (eventmgr != NULL || eventmgr->pp_eventmgr_fini != NULL) eventmgr->pp_eventmgr_fini(eventmgr); smumgr = pp_handle->smu_mgr; if (smumgr != NULL || smumgr->smumgr_funcs != NULL || Loading Loading @@ -273,9 +287,15 @@ static int amd_pp_instance_init(struct amd_pp_init *pp_init, if (ret) goto fail_hwmgr; ret = eventmgr_init(handle); if (ret) goto fail_eventmgr; amd_pp->pp_handle = handle; return 0; fail_eventmgr: hwmgr_fini(handle->hwmgr); fail_hwmgr: smum_fini(handle->smu_mgr); fail_smum: Loading @@ -286,9 +306,12 @@ static int amd_pp_instance_init(struct amd_pp_init *pp_init, static int amd_pp_instance_fini(void *handle) { struct pp_instance *instance = (struct pp_instance *)handle; if (instance == NULL) return -EINVAL; eventmgr_fini(instance->eventmgr); hwmgr_fini(instance->hwmgr); smum_fini(instance->smu_mgr); Loading
drivers/gpu/drm/amd/powerplay/eventmgr/Makefile 0 → 100644 +11 −0 Original line number Diff line number Diff line # # 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)
drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c 0 → 100644 +287 −0 Original line number Diff line number Diff line /* * 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 *initialize_event[] = { block_adjust_power_state_tasks, power_budget_tasks, system_config_tasks, setup_asic_tasks, enable_dynamic_state_management_tasks, enable_clock_power_gatings_tasks, get_2d_performance_state_tasks, set_performance_state_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 *uninitialize_event[] = { ungate_all_display_phys_tasks, uninitialize_display_phy_access_tasks, disable_gfx_voltage_island_power_gating_tasks, disable_gfx_clock_gating_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 *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 *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 *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 *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 *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, block_adjust_power_state_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_clock_power_gatings_tasks, enable_disable_bapm_tasks, reset_boot_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 *complete_init_event[] = { 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 *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 *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 *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 *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 *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 *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 *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 *display_config_change_event[] = { /* countDisplayConfigurationChangeEventTasks, */ unblock_adjust_power_state_tasks, /* setCPUPowerState,*/ notify_hw_power_source_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 *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 };
drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.h 0 → 100644 +62 −0 Original line number Diff line number Diff line /* * 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_*/