summaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irq-mbigen.c
diff options
context:
space:
mode:
authorMatt Redfearn <matt.redfearn@imgtec.com>2017-04-20 10:07:36 +0100
committerThomas Gleixner <tglx@linutronix.de>2017-04-20 16:07:02 +0200
commit8ada00a650ec7ec639fb72964f0e4eba928786f8 (patch)
treea745af5f96ac08747b8b6dc099fd16cfee9bd146 /drivers/irqchip/irq-mbigen.c
parentb87281e7f205eda08c911fdacd27d4d2f01daa09 (diff)
downloadlinux-8ada00a650ec7ec639fb72964f0e4eba928786f8.tar.bz2
irqchip/mips-gic: Replace static map with dynamic
Commit 4cfffcfa5106 ("irqchip/mips-gic: Fix local interrupts") fixed local interrupts by creating virq mappings for them all at startup. Unfortunately this change broke legacy IRQ controllers in the same system, such as the i8259 on the Malta platform, as it allocates virq numbers that were expected to be available for the legacy controller. Instead of creating the mappings statically when the GIC is probed, re-introduce the irq domain .map function, removed by commit e875bd66dfb ("irqchip/mips-gic: Fix local interrupts") and use it to set up the irq handler and chip. Since a good deal of the required functionality is already implemented by gic_irq_domain_alloc, repurpose that function for gic_irq_domain_map and add a new gic_irq_domain_alloc which wraps gic_irq_domain_map with the necessary conversion. This change fixes the legacy interrupt controller of the Malta platform without breaking the perf interrupt fixed by commit e875bd66dfb ("irqchip/mips-gic: Fix local interrupts"). Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com> Cc: linux-mips@linux-mips.org Cc: Jason Cooper <jason@lakedaemon.net> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Ralf Baechle <ralf@linux-mips.org> Link: http://lkml.kernel.org/r/1492679256-14513-4-git-send-email-matt.redfearn@imgtec.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/irqchip/irq-mbigen.c')
0 files changed, 0 insertions, 0 deletions