mmc: pxamci: better pending IRQ determination
authorBridge Wu <mingqiao.wu@gmail.com>
Tue, 25 Sep 2007 16:59:07 +0000 (18:59 +0200)
committerPierre Ossman <drzeus@drzeus.cx>
Tue, 25 Sep 2007 16:59:07 +0000 (18:59 +0200)
Pending interrupts should be determined from both I_REG and I_MASK
registers.

Signed-off-by: Bridge Wu <mingqiao.wu@gmail.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
drivers/mmc/host/pxamci.c

index b89e32d..03d1628 100644 (file)
@@ -298,7 +298,7 @@ static irqreturn_t pxamci_irq(int irq, void *devid)
        unsigned int ireg;
        int handled = 0;
 
-       ireg = readl(host->base + MMC_I_REG);
+       ireg = readl(host->base + MMC_I_REG) & ~readl(host->base + MMC_I_MASK);
 
        if (ireg) {
                unsigned stat = readl(host->base + MMC_STAT);