From 49ff2ef20f2eea76bc48167e0d8fc5f109146058 Mon Sep 17 00:00:00 2001 From: Anson Huang Date: Sat, 8 Sep 2018 11:38:47 +0800 Subject: imx8qm/imx8qxp: support random CPU resume when system suspend Using sc_pm_set_cpu_resume API instead of sc_pm_set_cpu_resume_addr to support random CPU resume for system suspend, as Linux kernel now supports non CPU0 suspend, we have to specify the CPU ID for SCFW to wake up when system resume. Signed-off-by: Anson Huang --- plat/imx/imx8qm/imx8qm_psci.c | 4 ++-- plat/imx/imx8qxp/imx8qxp_psci.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plat/imx/imx8qm/imx8qm_psci.c b/plat/imx/imx8qm/imx8qm_psci.c index 76bdc637..4cfa7b69 100644 --- a/plat/imx/imx8qm/imx8qm_psci.c +++ b/plat/imx/imx8qm/imx8qm_psci.c @@ -229,7 +229,7 @@ void imx_domain_suspend(const psci_power_state_t *target_state) sc_pm_set_resource_power_mode(ipc_handle, SC_R_GIC, SC_PM_PW_MODE_OFF); if (cluster_id == 0) { - sc_pm_set_cpu_resume_addr(ipc_handle, ap_core_index[cpu_id], 0x080000000); + sc_pm_set_cpu_resume(ipc_handle, ap_core_index[cpu_id], true, 0x080000000); if (wakeup_src_irqsteer) sc_pm_req_cpu_low_power_mode(ipc_handle, ap_core_index[cpu_id], SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_IRQSTEER); @@ -237,7 +237,7 @@ void imx_domain_suspend(const psci_power_state_t *target_state) sc_pm_req_cpu_low_power_mode(ipc_handle, ap_core_index[cpu_id], SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_SCU); } else { - sc_pm_set_cpu_resume_addr(ipc_handle, ap_core_index[cpu_id + 4], 0x080000000); + sc_pm_set_cpu_resume(ipc_handle, ap_core_index[cpu_id + 4], true, 0x080000000); if (wakeup_src_irqsteer) sc_pm_req_cpu_low_power_mode(ipc_handle, ap_core_index[cpu_id + 4], SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_IRQSTEER); diff --git a/plat/imx/imx8qxp/imx8qxp_psci.c b/plat/imx/imx8qxp/imx8qxp_psci.c index c98a5762..267ea225 100644 --- a/plat/imx/imx8qxp/imx8qxp_psci.c +++ b/plat/imx/imx8qxp/imx8qxp_psci.c @@ -193,7 +193,7 @@ void imx_domain_suspend(const psci_power_state_t *target_state) /* Put GIC in OFF mode. */ sc_pm_set_resource_power_mode(ipc_handle, SC_R_GIC, SC_PM_PW_MODE_OFF); - sc_pm_set_cpu_resume_addr(ipc_handle, ap_core_index[cpu_id], 0x080000000); + sc_pm_set_cpu_resume(ipc_handle, ap_core_index[cpu_id], true, 0x080000000); if (wakeup_src_irqsteer) sc_pm_req_cpu_low_power_mode(ipc_handle, ap_core_index[cpu_id], SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_IRQSTEER); -- cgit v1.2.3