ssb-mipscore: Fix interrupt vectors
This fixes assignment of the interrupt vectors on the SSB MIPS core. Signed-off-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
b63009b456
commit
2633da237b
1 changed files with 7 additions and 6 deletions
|
@ -109,12 +109,13 @@ static void set_irq(struct ssb_device *dev, unsigned int irq)
|
||||||
clear_irq(bus, oldirq);
|
clear_irq(bus, oldirq);
|
||||||
|
|
||||||
/* assign the new one */
|
/* assign the new one */
|
||||||
if (irq == 0)
|
if (irq == 0) {
|
||||||
ssb_write32(mdev, SSB_INTVEC, ((1 << irqflag) & ssb_read32(mdev, SSB_INTVEC)));
|
ssb_write32(mdev, SSB_INTVEC, ((1 << irqflag) | ssb_read32(mdev, SSB_INTVEC)));
|
||||||
|
} else {
|
||||||
irqflag <<= ipsflag_irq_shift[irq];
|
irqflag <<= ipsflag_irq_shift[irq];
|
||||||
irqflag |= (ssb_read32(mdev, SSB_IPSFLAG) & ~ipsflag_irq_mask[irq]);
|
irqflag |= (ssb_read32(mdev, SSB_IPSFLAG) & ~ipsflag_irq_mask[irq]);
|
||||||
ssb_write32(mdev, SSB_IPSFLAG, irqflag);
|
ssb_write32(mdev, SSB_IPSFLAG, irqflag);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ssb_mips_serial_init(struct ssb_mipscore *mcore)
|
static void ssb_mips_serial_init(struct ssb_mipscore *mcore)
|
||||||
|
|
Loading…
Reference in a new issue