a58bd03093
GIC700 erratum 2941627 may cause GIC-700 missing SPIs wake
requests when SPIs are deactivated while targeting a
sleeping CPU - ie a CPU for which the redistributor:
GICR_WAKER.ProcessorSleep == 1
This runtime situation can happen if an SPI that has been
activated on a core is retargeted to a different core, it
becomes pending and the target core subsequently enters a
power state quiescing the respective redistributor.
When this situation is hit, the de-activation carried out
on the core that activated the SPI (through either ICC_EOIR1_EL1
or ICC_DIR_EL1 register writes) does not trigger a wake
requests for the sleeping GIC redistributor even if the SPI
is pending.
Work around the erratum by de-activating the SPI using the
redistributor GICD_ICACTIVER register if the runtime
conditions require it (ie the IRQ was retargeted between
activation and de-activation).
Bug: 292459437
Bug: 294180741
Change-Id: Ide915b8c925a631a7fc9ccebca19d9175def162e
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230704155034.148262-1-lpieralisi@kernel.org
(cherry picked from commit 6fe5c68ee6a1aae0ef291a56001e7888de547fa2 https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git irq/irqchip-fixes)
Signed-off-by: Carlos Galo <carlosgalo@google.com>
(cherry picked from commit
|
||
---|---|---|
.. | ||
acpi_object_usage.rst | ||
amu.rst | ||
arm-acpi.rst | ||
asymmetric-32bit.rst | ||
booting.rst | ||
cpu-feature-registers.rst | ||
elf_hwcaps.rst | ||
features.rst | ||
hugetlbpage.rst | ||
index.rst | ||
kasan-offsets.sh | ||
legacy_instructions.rst | ||
memory-tagging-extension.rst | ||
memory.rst | ||
perf.rst | ||
pointer-authentication.rst | ||
silicon-errata.rst | ||
sme.rst | ||
sve.rst | ||
tagged-address-abi.rst | ||
tagged-pointers.rst |