[ARM] 4873/1: Fix ITE 8152 interrupt demux
authorMike Rapoport <mike@compulab.co.il>
Sun, 23 Mar 2008 14:32:33 +0000 (15:32 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 28 Mar 2008 15:07:46 +0000 (15:07 +0000)
This patch fixes misprints in ITE 8152 interrupt demuxing

Signed-off-by: Mike Rapoport <mike@compulab.co.il>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/common/it8152.c

index 538262241483202545dad88ac247b427b9e6c3b6..5fe9588db077be52b1cebc1c11484e843e11a6d7 100644 (file)
@@ -120,6 +120,7 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
                          time, when they all three were 0. */
                       bits_pd = __raw_readl(IT8152_INTC_PDCNIRR);
                       bits_lp = __raw_readl(IT8152_INTC_LPCNIRR);
+                      bits_ld = __raw_readl(IT8152_INTC_LDCNIRR);
                       if (!(bits_ld | bits_lp | bits_pd))
                               return;
               }
@@ -133,14 +134,14 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
 
               bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1);
               while (bits_lp) {
-                      i = __ffs(bits_pd);
+                      i = __ffs(bits_lp);
                       it8152_irq(IT8152_LP_IRQ(i));
                       bits_lp &= ~(1 << i);
               }
 
               bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1);
               while (bits_ld) {
-                      i = __ffs(bits_pd);
+                      i = __ffs(bits_ld);
                       it8152_irq(IT8152_LD_IRQ(i));
                       bits_ld &= ~(1 << i);
               }