zynqmp: pm: Move pm_client_wakeup call from pm_req_wakeup
Call to pm_client_wakeup from pm_req_wakeup prevented the PM API call to be used to wake up non-APU processor (e.g. from higher ELs), since it clears power down request for specified APU processor. Move this function out of pm_client_wakeup to allow passing wake up requests to the PMU for other processor in the system. Signed-off-by: Filip Drazic <filip.drazic@aggios.com> Acked-by: Will Wong <willw@xilinx.com>
This commit is contained in:
parent
c496f5af54
commit
9feba2e7dd
|
@ -78,6 +78,8 @@ static int zynqmp_pwr_domain_on(u_register_t mpidr)
|
|||
return PSCI_E_INTERN_FAIL;
|
||||
|
||||
proc = pm_get_proc(cpu_id);
|
||||
/* Clear power down request */
|
||||
pm_client_wakeup(proc);
|
||||
|
||||
/* Send request to PMU to wake up selected APU CPU core */
|
||||
pm_req_wakeup(proc->node_id, 1, zynqmp_sec_entry, REQ_ACK_BLOCKING);
|
||||
|
|
|
@ -130,10 +130,7 @@ enum pm_ret_status pm_req_wakeup(enum pm_node_id target,
|
|||
{
|
||||
uint32_t payload[PAYLOAD_ARG_CNT];
|
||||
uint64_t encoded_address;
|
||||
const struct pm_proc *proc = pm_get_proc_by_node(target);
|
||||
|
||||
/* invoke APU-specific code for waking up another APU core */
|
||||
pm_client_wakeup(proc);
|
||||
|
||||
/* encode set Address into 1st bit of address */
|
||||
encoded_address = address;
|
||||
|
|
Loading…
Reference in New Issue