Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2633da23 authored by Michael Buesch's avatar Michael Buesch Committed by John W. Linville
Browse files

ssb-mipscore: Fix interrupt vectors



This fixes assignment of the interrupt vectors on the SSB MIPS core.

Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent b63009b4
Loading
Loading
Loading
Loading
+7 −6
Original line number Original line Diff line number Diff line
@@ -109,13 +109,14 @@ 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)
{
{