]> git.baikalelectronics.ru Git - uboot.git/commit
ARM: mx7: psci: fix suspend/resume e10133 workaround
authorMatthias Schiffer <matthias.schiffer@ew.tq-group.com>
Mon, 26 Sep 2022 08:31:08 +0000 (10:31 +0200)
committerStefano Babic <sbabic@denx.de>
Mon, 7 Nov 2022 21:45:04 +0000 (22:45 +0100)
commit0137190a989a875eb1bd7c0c99a0292327a524b8
tree12d400ec35c7a9c50dee2d4c20dba55df7a5b5f4
parentb8ef55ee77da7a99a748af1dffe3ba4034672065
ARM: mx7: psci: fix suspend/resume e10133 workaround

The e10133 workaround was broken in two places:

- The code intended to temporarily mask all interrupts in GPC_IMRx_CORE0.
  While the old register values were saved, the actual masking was
  missing.
- imx_udelay() expects the system counter to run at its base frequency,
  but the system counter is switched to a lower frequency earlier in
  psci_system_suspend(), leading to a much longer delay than intended.
  Replace the call with an equivalent loop (linux-imx 5.15 does the same)

This fixes the SoC hanging forever when there was already a wakeup IRQ
pending while suspending.

Fixes: 9276546330 ("imx: mx7: add system suspend/resume support")
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
arch/arm/mach-imx/mx7/psci-mx7.c