diff options
author | Tom Rini | 2022-11-14 07:29:51 -0500 |
---|---|---|
committer | Tom Rini | 2022-11-14 09:33:36 -0500 |
commit | c4ee4fe92e9be120be6d12718273dec6b63cc7d9 (patch) | |
tree | 31d45f462b8b4b85f525308a22e0bebb9f80f27c /arch/arm/mach-imx/mx7 | |
parent | fac432652f38724994a99c2613183fc04534a2cd (diff) | |
parent | fc1c1760de38823edbdc2cdd9606dff938a07f6e (diff) |
Merge tag 'u-boot-imx-20221114' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
For 2022.01
-----------
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/14083
- Fix UART
- moved to binman (MX8 boards)
- Toradex: sync DTS with Linux
- Gateworks: fixes
- New boards : MSC SM2S iMX8MP
Diffstat (limited to 'arch/arm/mach-imx/mx7')
-rw-r--r-- | arch/arm/mach-imx/mx7/psci-mx7.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/arm/mach-imx/mx7/psci-mx7.c b/arch/arm/mach-imx/mx7/psci-mx7.c index f32945ea371..699a2569cb7 100644 --- a/arch/arm/mach-imx/mx7/psci-mx7.c +++ b/arch/arm/mach-imx/mx7/psci-mx7.c @@ -643,8 +643,10 @@ __secure void psci_system_suspend(u32 __always_unused function_id, /* disable GIC distributor */ writel(0, GIC400_ARB_BASE_ADDR + GIC_DIST_OFFSET); - for (i = 0; i < 4; i++) + for (i = 0; i < 4; i++) { gpc_mask[i] = readl(GPC_IPS_BASE_ADDR + GPC_IMR1_CORE0 + i * 4); + writel(~0, GPC_IPS_BASE_ADDR + GPC_IMR1_CORE0 + i * 4); + } /* * enable the RBC bypass counter here @@ -668,7 +670,7 @@ __secure void psci_system_suspend(u32 __always_unused function_id, writel(gpc_mask[i], GPC_IPS_BASE_ADDR + GPC_IMR1_CORE0 + i * 4); /* - * now delay for a short while (3usec) + * now delay for a short while (~3usec) * ARM is at 1GHz at this point * so a short loop should be enough. * this delay is required to ensure that @@ -677,7 +679,8 @@ __secure void psci_system_suspend(u32 __always_unused function_id, * or in case an interrupt arrives just * as ARM is about to assert DSM_request. */ - imx_udelay(3); + for (i = 0; i < 2000; i++) + asm volatile(""); /* save resume entry and sp in CPU0 GPR registers */ asm volatile("mov %0, sp" : "=r" (val)); |