summaryrefslogtreecommitdiff
path: root/plat/imx/imx8m/imx8mp/imx8mp_psci.c
diff options
context:
space:
mode:
Diffstat (limited to 'plat/imx/imx8m/imx8mp/imx8mp_psci.c')
-rw-r--r--plat/imx/imx8m/imx8mp/imx8mp_psci.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/plat/imx/imx8m/imx8mp/imx8mp_psci.c b/plat/imx/imx8m/imx8mp/imx8mp_psci.c
index 6c938b7b..2aa34e64 100644
--- a/plat/imx/imx8m/imx8mp/imx8mp_psci.c
+++ b/plat/imx/imx8m/imx8mp/imx8mp_psci.c
@@ -57,6 +57,9 @@ void imx_domain_suspend(const psci_power_state_t *target_state)
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 + 0x98) == 0xD)
+ dram_enter_retention();
/*
* when A53 don't enter DSM, only need to
* set the system wakeup option.
@@ -78,6 +81,10 @@ void imx_domain_suspend_finish(const psci_power_state_t *target_state)
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 + 0x98) == 0xD)
+ dram_exit_retention();
+
imx_set_sys_wakeup(core_id, false);
}
}