diff options
author | Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> | 2007-09-30 15:34:41 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-10-12 18:43:34 -0400 |
commit | ba7d850a02c7c3357ec488776405470534e7ccf8 (patch) | |
tree | 1eaf30f0f97c03ea235beeb89715ad01b011f44e /arch/arm/mach-ns9xxx/board-a9m9750dev.c | |
parent | ff9e76aaba13f6f6bae31c9ac2aa2a50f5cdd801 (diff) |
[ARM] 4589/1: ns9xxx: acknowledge IRQ_EXT2 in the demux routine for FPGA irqs
The FPGA on the a9m9750dev board interrupts the CPU via EXT2. So
to acknowledge any FPGA interrupt IRQ_EXT2 must be acknowledged.
Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-ns9xxx/board-a9m9750dev.c')
-rw-r--r-- | arch/arm/mach-ns9xxx/board-a9m9750dev.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/arm/mach-ns9xxx/board-a9m9750dev.c b/arch/arm/mach-ns9xxx/board-a9m9750dev.c index 925048e7adfe..88d1f7ef78c9 100644 --- a/arch/arm/mach-ns9xxx/board-a9m9750dev.c +++ b/arch/arm/mach-ns9xxx/board-a9m9750dev.c | |||
@@ -70,15 +70,20 @@ static void a9m9750dev_fpga_demux_handler(unsigned int irq, | |||
70 | { | 70 | { |
71 | int stat = FPGA_ISR; | 71 | int stat = FPGA_ISR; |
72 | 72 | ||
73 | desc->chip->mask_ack(irq); | ||
74 | |||
73 | while (stat != 0) { | 75 | while (stat != 0) { |
74 | int irqno = fls(stat) - 1; | 76 | int irqno = fls(stat) - 1; |
77 | struct irq_desc *fpgadesc; | ||
75 | 78 | ||
76 | stat &= ~(1 << irqno); | 79 | stat &= ~(1 << irqno); |
77 | 80 | ||
78 | desc = irq_desc + FPGA_IRQ(irqno); | 81 | fpgadesc = irq_desc + FPGA_IRQ(irqno); |
79 | 82 | ||
80 | desc_handle_irq(FPGA_IRQ(irqno), desc); | 83 | desc_handle_irq(FPGA_IRQ(irqno), fpgadesc); |
81 | } | 84 | } |
85 | |||
86 | desc->chip->unmask(irq); | ||
82 | } | 87 | } |
83 | 88 | ||
84 | void __init board_a9m9750dev_init_irq(void) | 89 | void __init board_a9m9750dev_init_irq(void) |