]> err.no Git - linux-2.6/commitdiff
[ARM] 4589/1: ns9xxx: acknowledge IRQ_EXT2 in the demux routine for FPGA irqs
authorUwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Sun, 30 Sep 2007 19:34:41 +0000 (20:34 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 12 Oct 2007 22:43:34 +0000 (23:43 +0100)
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>
arch/arm/mach-ns9xxx/board-a9m9750dev.c

index 925048e7adfe9c9d048a14cb9914562e8e11cc49..88d1f7ef78c9521a3d2e423a4117e69c637b0002 100644 (file)
@@ -70,15 +70,20 @@ static void a9m9750dev_fpga_demux_handler(unsigned int irq,
 {
        int stat = FPGA_ISR;
 
+       desc->chip->mask_ack(irq);
+
        while (stat != 0) {
                int irqno = fls(stat) - 1;
+               struct irq_desc *fpgadesc;
 
                stat &= ~(1 << irqno);
 
-               desc = irq_desc + FPGA_IRQ(irqno);
+               fpgadesc = irq_desc + FPGA_IRQ(irqno);
 
-               desc_handle_irq(FPGA_IRQ(irqno), desc);
+               desc_handle_irq(FPGA_IRQ(irqno), fpgadesc);
        }
+
+       desc->chip->unmask(irq);
 }
 
 void __init board_a9m9750dev_init_irq(void)