]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
bcma: mips: fix clearing device IRQ
authorRafał Miłecki <zajec5@gmail.com>
Mon, 10 Dec 2012 06:53:56 +0000 (07:53 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 3 Jan 2013 03:33:33 +0000 (03:33 +0000)
commit cbbc0138efe1dcd5426b8fc5d87741f5057aee72 upstream.

We were using wrong IRQ number so clearing wasn't working at all.
Depending on a platform this could result in a one device having two
interrupts assigned. On BCM4706 this resulted in all IRQs being broken.

Cc: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/bcma/driver_mips.c

index c3e9dff4224e4dc811710a3e9719ed27d9a76c3a..041fddfd01a0a440692e20c4ca3193f7f492b402 100644 (file)
@@ -115,7 +115,7 @@ static void bcma_core_mips_set_irq(struct bcma_device *dev, unsigned int irq)
                            bcma_read32(mdev, BCMA_MIPS_MIPS74K_INTMASK(0)) &
                            ~(1 << irqflag));
        else
-               bcma_write32(mdev, BCMA_MIPS_MIPS74K_INTMASK(irq), 0);
+               bcma_write32(mdev, BCMA_MIPS_MIPS74K_INTMASK(oldirq), 0);
 
        /* assign the new one */
        if (irq == 0) {