drm/amdgpu/powerplay: implement pem_task for display_configuration_change
Add support for display configuration changes to the event manager. Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
6f3bf7474c
commit
2f4afc5733
|
@ -152,7 +152,7 @@ const pem_event_action set_boot_state_tasks[] = {
|
|||
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_notify_smc_display_config_after_power_state_adjustment,
|
||||
pem_task_update_allowed_performance_levels,
|
||||
/* to do pem_task_Enable_disable_bapm, */
|
||||
NULL
|
||||
|
|
|
@ -189,16 +189,25 @@ int pem_task_store_dal_configuration(struct pp_eventmgr *eventmgr, const struct
|
|||
|
||||
int pem_task_notify_hw_mgr_display_configuration_change(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
|
||||
{
|
||||
/* TODO */
|
||||
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)
|
||||
{
|
||||
/* TODO */
|
||||
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;
|
||||
|
|
|
@ -57,7 +57,7 @@ int pem_task_block_hw_access(struct pp_eventmgr *eventmgr, struct pem_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);
|
||||
|
|
|
@ -97,7 +97,7 @@ int psm_adjust_power_state_dynamic(struct pp_eventmgr *eventmgr, bool skip)
|
|||
pcurrent = hwmgr->current_ps;
|
||||
requested = hwmgr->request_ps;
|
||||
|
||||
if (pcurrent != NULL || requested != NULL) {
|
||||
if ((pcurrent != NULL || requested != NULL) && (pcurrent != requested)) {
|
||||
phm_apply_state_adjust_rules(hwmgr, requested, pcurrent);
|
||||
phm_set_power_state(hwmgr, &pcurrent->hardware, &requested->hardware);
|
||||
hwmgr->current_ps = requested;
|
||||
|
|
Loading…
Reference in New Issue