]> git.baikalelectronics.ru Git - kernel.git/commit
irqchip/mips-gic: Fix Local compare interrupt
authorMatt Redfearn <matt.redfearn@imgtec.com>
Fri, 31 Mar 2017 11:05:32 +0000 (12:05 +0100)
committerMarc Zyngier <marc.zyngier@arm.com>
Fri, 31 Mar 2017 13:38:25 +0000 (14:38 +0100)
commitfc588bb7a53a9d6e1224defced1978a41c5a64c0
treefa94e5781072a3ddf85715ed8cc11bf257b28542
parent89d2e6d2c6df8e0ace83ee08143cecd9c93c93a4
irqchip/mips-gic: Fix Local compare interrupt

Commit 71cdb5fc4091 ("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: 71cdb5fc4091 ("irqchip/mips-gic: Fix local interrupts")
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-mips-gic.c