drm/amd/powerplay: enable power down asic task. (v2)
v2: AGD: rebase on upstream Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
018462d015
commit
e1d32e607b
|
@ -68,8 +68,7 @@ int pem_task_adjust_power_state(struct pp_eventmgr *eventmgr, struct pem_event_d
|
|||
|
||||
int pem_task_power_down_asic(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
|
||||
{
|
||||
/* TODO */
|
||||
return 0;
|
||||
return phm_power_down_asic(eventmgr->hwmgr);
|
||||
}
|
||||
|
||||
int pem_task_set_boot_state(struct pp_eventmgr *eventmgr, struct pem_event_data *event_data)
|
||||
|
|
|
@ -90,6 +90,22 @@ int phm_setup_asic(struct pp_hwmgr *hwmgr)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int phm_power_down_asic(struct pp_hwmgr *hwmgr)
|
||||
{
|
||||
PHM_FUNC_CHECK(hwmgr);
|
||||
|
||||
if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
|
||||
PHM_PlatformCaps_TablelessHardwareInterface)) {
|
||||
if (NULL != hwmgr->hwmgr_func->power_off_asic)
|
||||
return hwmgr->hwmgr_func->power_off_asic(hwmgr);
|
||||
} else {
|
||||
return phm_dispatch_table(hwmgr, &(hwmgr->power_down_asic),
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int phm_set_power_state(struct pp_hwmgr *hwmgr,
|
||||
const struct pp_hw_power_state *pcurrent_state,
|
||||
const struct pp_hw_power_state *pnew_power_state)
|
||||
|
@ -247,7 +263,6 @@ int phm_register_thermal_interrupt(struct pp_hwmgr *hwmgr, const void *info)
|
|||
*/
|
||||
int phm_start_thermal_controller(struct pp_hwmgr *hwmgr, struct PP_TemperatureRange *temperature_range)
|
||||
{
|
||||
|
||||
return phm_dispatch_table(hwmgr, &(hwmgr->start_thermal_controller), temperature_range, NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -379,5 +379,7 @@ extern int phm_get_dal_power_level(struct pp_hwmgr *hwmgr,
|
|||
|
||||
extern int phm_set_cpu_power_state(struct pp_hwmgr *hwmgr);
|
||||
|
||||
extern int phm_power_down_asic(struct pp_hwmgr *hwmgr);
|
||||
|
||||
#endif /* _HARDWARE_MANAGER_H_ */
|
||||
|
||||
|
|
|
@ -325,7 +325,8 @@ struct pp_hwmgr_func {
|
|||
bool cc6_disable, bool pstate_disable,
|
||||
bool pstate_switch_disable);
|
||||
int (*get_dal_power_level)(struct pp_hwmgr *hwmgr,
|
||||
struct amd_pp_dal_clock_info*info);
|
||||
struct amd_pp_dal_clock_info *info);
|
||||
int (*power_off_asic)(struct pp_hwmgr *hwmgr);
|
||||
};
|
||||
|
||||
struct pp_table_func {
|
||||
|
@ -576,9 +577,10 @@ struct pp_hwmgr {
|
|||
void *pptable;
|
||||
struct phm_platform_descriptor platform_descriptor;
|
||||
void *backend;
|
||||
enum PP_DAL_POWERLEVEL dal_power_level;
|
||||
enum PP_DAL_POWERLEVEL dal_power_level;
|
||||
struct phm_dynamic_state_info dyn_state;
|
||||
struct phm_runtime_table_header setup_asic;
|
||||
struct phm_runtime_table_header power_down_asic;
|
||||
struct phm_runtime_table_header disable_dynamic_state_management;
|
||||
struct phm_runtime_table_header enable_dynamic_state_management;
|
||||
struct phm_runtime_table_header set_power_state;
|
||||
|
|
Loading…
Reference in New Issue