diff --git a/plat/xilinx/zynqmp/plat_psci.c b/plat/xilinx/zynqmp/plat_psci.c index c9fd36113..27cdddb2c 100644 --- a/plat/xilinx/zynqmp/plat_psci.c +++ b/plat/xilinx/zynqmp/plat_psci.c @@ -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); diff --git a/plat/xilinx/zynqmp/pm_service/pm_api_sys.c b/plat/xilinx/zynqmp/pm_service/pm_api_sys.c index cad29bc6c..9f137f4bf 100644 --- a/plat/xilinx/zynqmp/pm_service/pm_api_sys.c +++ b/plat/xilinx/zynqmp/pm_service/pm_api_sys.c @@ -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;