Commit 9feba2e7 authored by Filip Drazic's avatar Filip Drazic Committed by Siva Durga Prasad Paladugu
Browse files

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: default avatarFilip Drazic <filip.drazic@aggios.com>
Acked-by: default avatarWill Wong <willw@xilinx.com>
parent c496f5af
...@@ -78,6 +78,8 @@ static int zynqmp_pwr_domain_on(u_register_t mpidr) ...@@ -78,6 +78,8 @@ static int zynqmp_pwr_domain_on(u_register_t mpidr)
return PSCI_E_INTERN_FAIL; return PSCI_E_INTERN_FAIL;
proc = pm_get_proc(cpu_id); 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 */ /* Send request to PMU to wake up selected APU CPU core */
pm_req_wakeup(proc->node_id, 1, zynqmp_sec_entry, REQ_ACK_BLOCKING); 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, ...@@ -130,10 +130,7 @@ enum pm_ret_status pm_req_wakeup(enum pm_node_id target,
{ {
uint32_t payload[PAYLOAD_ARG_CNT]; uint32_t payload[PAYLOAD_ARG_CNT];
uint64_t encoded_address; 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 */ /* encode set Address into 1st bit of address */
encoded_address = address; encoded_address = address;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment