summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnson Huang <Anson.Huang@nxp.com>2018-09-08 11:38:47 +0800
committerAnson Huang <Anson.Huang@nxp.com>2018-09-08 11:38:47 +0800
commit49ff2ef20f2eea76bc48167e0d8fc5f109146058 (patch)
treee9f1f022170df18eedf56b8f3303a5872ed7d113
parent68983a41738a153a91376a7b6913ac4e87b7f57a (diff)
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 <Anson.Huang@nxp.com>
-rw-r--r--plat/imx/imx8qm/imx8qm_psci.c4
-rw-r--r--plat/imx/imx8qxp/imx8qxp_psci.c2
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);