diff options
author | Vladimir Zapolskiy <vz@mleia.com> | 2016-04-24 21:00:38 -0400 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2016-05-11 05:12:11 -0400 |
commit | 8cb17b5ed0177d1b613aadd53c7e570b81625728 (patch) | |
tree | b9fd1a3cdcafec5d09ef1c83ed664c73903c5532 /drivers/irqchip/Makefile | |
parent | f86c4fbd930ff6fecf3d8a1c313182bd0f49f496 (diff) |
irqchip: Add LPC32xx interrupt controller driver
The change adds improved support of NXP LPC32xx MIC, SIC1 and SIC2
interrupt controllers.
This is a list of new features in comparison to the legacy driver:
* irq types are taken from device tree settings, no more need to
hardcode them,
* old driver is based on irq_domain_add_legacy, which causes problems
with handling MIC hardware interrupt 0 produced by SIC1,
* there is one driver for MIC, SIC1 and SIC2, no more need to handle
them separately, e.g. have two separate handlers for SIC1 and SIC2,
* the driver does not have any dependencies on hardcoded register
offsets,
* the driver is much simpler for maintenance,
* SPARSE_IRQS option is supported.
Legacy LPC32xx interrupt controller driver was broken since commit
76ba59f8366f ("genirq: Add irq_domain-aware core IRQ handler"), which
requires a private interrupt handler, otherwise any SIC1 generated
interrupt (mapped to MIC hwirq 0) breaks the kernel with the message
"unexpected IRQ trap at vector 00".
The change disables compilation of a legacy driver found at
arch/arm/mach-lpc32xx/irq.c, the file will be removed in a separate
commit.
Fixes: 76ba59f8366f ("genirq: Add irq_domain-aware core IRQ handler")
Tested-by: Sylvain Lemieux <slemieux.tyco@gmail.com>
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'drivers/irqchip/Makefile')
-rw-r--r-- | drivers/irqchip/Makefile | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile index 8cedf9060565..f828244b44c2 100644 --- a/drivers/irqchip/Makefile +++ b/drivers/irqchip/Makefile | |||
@@ -7,6 +7,7 @@ obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o | |||
7 | obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2836.o | 7 | obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2836.o |
8 | obj-$(CONFIG_ARCH_EXYNOS) += exynos-combiner.o | 8 | obj-$(CONFIG_ARCH_EXYNOS) += exynos-combiner.o |
9 | obj-$(CONFIG_ARCH_HIP04) += irq-hip04.o | 9 | obj-$(CONFIG_ARCH_HIP04) += irq-hip04.o |
10 | obj-$(CONFIG_ARCH_LPC32XX) += irq-lpc32xx.o | ||
10 | obj-$(CONFIG_ARCH_MMP) += irq-mmp.o | 11 | obj-$(CONFIG_ARCH_MMP) += irq-mmp.o |
11 | obj-$(CONFIG_IRQ_MXS) += irq-mxs.o | 12 | obj-$(CONFIG_IRQ_MXS) += irq-mxs.o |
12 | obj-$(CONFIG_ARCH_TEGRA) += irq-tegra.o | 13 | obj-$(CONFIG_ARCH_TEGRA) += irq-tegra.o |