aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/common/vic.c
diff options
context:
space:
mode:
authorLinus Walleij <triad@df.lth.se>2009-04-16 21:17:56 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-04-16 21:29:46 +0100
commit77f4025b5e7b290f5c3cc03aa6242328694c71d4 (patch)
tree03150e3fe3075eeadf3df3b978766bae139b615a /arch/arm/common/vic.c
parent5e075cb5cee4faecc82e2b8a04e640176629976e (diff)
[ARM] 5455/1: Fix IRQ noise from VIC code
The VIC code will attempt to perform som default set_irq_chip() and set_irq_chip_data() on all IRQs supported by the VIC, while the new IRQ handling code strictly checks for the global NR_IRQS to be respected also for these IRQs. This patch will respect the interrupt mask passed to the VIC driver and will prevent it from attempting to call these functions on any unused interrupts. Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/common/vic.c')
-rw-r--r--arch/arm/common/vic.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c
index ecf0bfbab10..b2a781d9ce0 100644
--- a/arch/arm/common/vic.c
+++ b/arch/arm/common/vic.c
@@ -85,12 +85,11 @@ void __init vic_init(void __iomem *base, unsigned int irq_start,
writel(32, base + VIC_PL190_DEF_VECT_ADDR);
for (i = 0; i < 32; i++) {
- unsigned int irq = irq_start + i;
-
- set_irq_chip(irq, &vic_chip);
- set_irq_chip_data(irq, base);
-
if (vic_sources & (1 << i)) {
+ unsigned int irq = irq_start + i;
+
+ set_irq_chip(irq, &vic_chip);
+ set_irq_chip_data(irq, base);
set_irq_handler(irq, handle_level_irq);
set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
}