• Matt Redfearn's avatar
    irqchip/mips-gic: Fix Local compare interrupt · 42969893
    Matt Redfearn authored
    Commit 4cfffcfa ("irqchip/mips-gic: Fix local interrupts") added
    mapping of several local interrupts during initialisation of the gic
    driver. This associates virq numbers with these interrupts.
    Unfortunately, as not all of the interrupts are mapped in hardware
    order, when drivers subsequently request these interrupts they conflict
    with the mappings that have already been set up. For example, this
    manifests itself in the gic clocksource driver, which fails to probe
    with the message:
    
    clocksource: GIC: mask: 0xffffffffffffffff max_cycles: 0x7350c9738,
    max_idle_ns: 440795203769 ns
    GIC timer IRQ 25 setup failed: -22
    
    This is because virq 25 (the correct IRQ number specified via device
    tree) was allocated to the PERFCTR interrupt (and 24 to the timer, 26 to
    the FDC). To fix this, map all of these local interrupts in the hardware
    order so as to associate their virq numbers with the correct hw
    interrupts.
    
    Fixes: 4cfffcfa ("irqchip/mips-gic: Fix local interrupts")
    Acked-by: default avatarRalf Baechle <ralf@linux-mips.org>
    Signed-off-by: default avatarMatt Redfearn <matt.redfearn@imgtec.com>
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    42969893
irq-mips-gic.c 28.6 KB