summaryrefslogtreecommitdiff
path: root/plat/imx/imx8m/imx8m_psci_common.c
diff options
context:
space:
mode:
authorJacky Bai <ping.bai@nxp.com>2020-10-27 16:43:53 +0800
committerJacky Bai <ping.bai@nxp.com>2020-10-28 09:39:02 +0800
commit4b7d472fa3eedc032a1ca4757362d4daa8fe5f9a (patch)
tree7be060d619bcc2f73ecf29a46488b0a6e7ef1703 /plat/imx/imx8m/imx8m_psci_common.c
parentccf1c54f080009827f2b8dd34ed5eb8564bab8b6 (diff)
MLK-24923-02 plat: imx8m: Put dram into retention when dsp lpa buffer in ocram
when the DSP LPA buffer is in OCRAM, dram can be put into retention to save power. This support is missed when removing the i.MX8MP A0 support, so add it back. Signed-off-by: Jacky Bai <ping.bai@nxp.com> Reviewed-by: Anson Huang <Anson.Huang@nxp.com>
Diffstat (limited to 'plat/imx/imx8m/imx8m_psci_common.c')
-rw-r--r--plat/imx/imx8m/imx8m_psci_common.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/plat/imx/imx8m/imx8m_psci_common.c b/plat/imx/imx8m/imx8m_psci_common.c
index 452958ce..ca0a5fc3 100644
--- a/plat/imx/imx8m/imx8m_psci_common.c
+++ b/plat/imx/imx8m/imx8m_psci_common.c
@@ -126,8 +126,13 @@ void imx_domain_suspend(const psci_power_state_t *target_state)
dram_enter_retention();
imx_anamix_override(true);
imx_noc_wrapper_pre_suspend(core_id);
+ } else {
+ /* flag 0xD means DSP LPA buffer is in OCRAM */
+ if (mmio_read_32(IMX_SRC_BASE + LPA_STATUS) == 0xD)
+ dram_enter_retention();
}
- imx_set_sys_wakeup(core_id, true);
+
+ imx_set_sys_wakeup(core_id, true);
}
}
@@ -142,8 +147,13 @@ void imx_domain_suspend_finish(const psci_power_state_t *target_state)
imx_anamix_override(false);
dram_exit_retention();
imx_set_sys_lpm(core_id, false);
+ } else {
+ /* flag 0xD means DSP LPA buffer is in OCRAM */
+ if (mmio_read_32(IMX_SRC_BASE + LPA_STATUS) == 0xD)
+ dram_exit_retention();
}
- imx_set_sys_wakeup(core_id, false);
+
+ imx_set_sys_wakeup(core_id, false);
}
if (!is_local_state_run(CLUSTER_PWR_STATE(target_state))) {