]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
irqchip/gicv3-its: Disable the ITS before initializing it
authorDavid Daney <david.daney@cavium.com>
Thu, 18 Aug 2016 22:41:58 +0000 (15:41 -0700)
committerMarc Zyngier <marc.zyngier@arm.com>
Fri, 19 Aug 2016 08:47:07 +0000 (09:47 +0100)
commit7611da865c1060b2a7c87a15de663a59035747f8
tree67eed481534bc6c7102110e65ab4c6ee9e0b786a
parentccd9432a5c85f35df7b491a1b701560d247466a5
irqchip/gicv3-its: Disable the ITS before initializing it

When starting a kexec/kdump kernel, the GIC ITS will already have been
enabled.  According to the ARM Generic Interrupt Controller
Architecture Specification (GIC architecture Version 3.0 and version
4.0), writing to GITS_BASER<n> or GITS_CBASER is "UNPREDICTABLE" when
the ITS is enabled.  On Cavium Thunder systems, this prevents the ITS
from being initializing in the kexec/kdump kernel, resulting in
failure to register/enable interrupts for all devices.

The fix is to disable the ITS if it is not already in the disabled
state.  This allows the ITS to be properly initialized and then
re-enabled in the kexec/kdump kernel.

Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-gic-v3-its.c