diff options
author | Anson Huang <Anson.Huang@nxp.com> | 2018-08-10 17:49:00 +0800 |
---|---|---|
committer | Bai Ping <ping.bai@nxp.com> | 2018-09-15 00:18:32 +0800 |
commit | 7b60954d68e074d6d0d1a6f828f4392cf7c7137d (patch) | |
tree | b8c02b2582e001eb86dc8e2f67aa88c478a0d079 /plat/imx/imx8mm/imx8mm_psci.c | |
parent | ca98a9fca54b491755e515ca0f0d7f53a19ad74f (diff) |
plat: imx8mm: Add support for imx8mm lpa
For i.MX8MM low power audio playback, when Linux suspend,
M4 still needs to be active for audio playback, so system
can NOT enter DSM mode but only force A core platform into
STOP mode, PLLs/NoC/DRAM need to be active as well and MU
interrupt wakeup needs to be enabled for waking up Linux
by MU message sent by M4.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Diffstat (limited to 'plat/imx/imx8mm/imx8mm_psci.c')
-rw-r--r-- | plat/imx/imx8mm/imx8mm_psci.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/plat/imx/imx8mm/imx8mm_psci.c b/plat/imx/imx8mm/imx8mm_psci.c index eb82ec33..ec3a8c1a 100644 --- a/plat/imx/imx8mm/imx8mm_psci.c +++ b/plat/imx/imx8mm/imx8mm_psci.c @@ -130,7 +130,8 @@ void imx_domain_suspend(const psci_power_state_t *target_state) /* do system level power mode setting */ if (is_local_state_retn(SYSTEM_PWR_STATE(target_state))) { - dram_enter_retention(); + if (!imx_is_m4_enabled() || !imx_m4_lpa_active()) + dram_enter_retention(); imx_set_sys_lpm(true); imx_anamix_pre_suspend(); noc_wrapper_pre_suspend(core_id); @@ -151,7 +152,8 @@ void imx_domain_suspend_finish(const psci_power_state_t *target_state) imx_set_sys_wakeup(core_id, false); imx_anamix_post_resume(); imx_clear_rbc_count(); - dram_exit_retention(); + if (!imx_is_m4_enabled() || !imx_m4_lpa_active()) + dram_exit_retention(); noc_wrapper_post_resume(core_id); } |