ssb-mipscore: Fix interrupt vectors
PATCH 1/1 ssb-mipscore: Fix interrupt vectors
This fixes assignment of the interrupt vectors on the SSB MIPS core.
Signed-off-by Michael Buesch <[email protected]>
---
John, please apply this bugfix to 2.6.25.
drivers/ssb/driver_mipscore.c +7 -6
@@ -106,18 +106,19 @@ static void set_irq(struct ssb_device *dif (oldirq ==0 )ssb_write32 (mdev,SSB_INTVEC , (~(1 << irqflag) &ssb_read32 (mdev,SSB_INTVEC )));else clear_irq (bus, oldirq);/* assign the new one */ -if (irq ==0 ) -ssb_write32 (mdev,SSB_INTVEC , ((1 << irqflag) &ssb_read32 (mdev,SSB_INTVEC ))); - - irqflag <<= ipsflag_irq_shift[irq]; - irqflag |= (ssb_read32 (mdev,SSB_IPSFLAG ) & ~ipsflag_irq_mask[irq]); -ssb_write32 (mdev,SSB_IPSFLAG , irqflag); +if (irq ==0 ) { +ssb_write32 (mdev,SSB_INTVEC , ((1 << irqflag) |ssb_read32 (mdev,SSB_INTVEC ))); + }else { + irqflag <<= ipsflag_irq_shift[irq]; + irqflag |= (ssb_read32 (mdev,SSB_IPSFLAG ) & ~ipsflag_irq_mask[irq]); +ssb_write32 (mdev,SSB_IPSFLAG , irqflag); + } }static void ssb_mips_serial_init (struct ssb_mipscore *mcore) {struct ssb_bus *bus = mcore->dev->bus;