• David Daney's avatar
    irqchip/gicv3-its: Disable the ITS before initializing it · 7611da86
    David Daney authored
    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: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: default avatarDavid Daney <david.daney@cavium.com>
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    7611da86