aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ns9xxx
diff options
context:
space:
mode:
authorUwe Kleine-König <ukleinek@informatik.uni-freiburg.de>2007-09-30 15:34:41 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-10-12 18:43:34 -0400
commitba7d850a02c7c3357ec488776405470534e7ccf8 (patch)
tree1eaf30f0f97c03ea235beeb89715ad01b011f44e /arch/arm/mach-ns9xxx
parentff9e76aaba13f6f6bae31c9ac2aa2a50f5cdd801 (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')
-rw-r--r--arch/arm/mach-ns9xxx/board-a9m9750dev.c9
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
84void __init board_a9m9750dev_init_irq(void) 89void __init board_a9m9750dev_init_irq(void)