AST2600 i2c irq issue
wsa at the-dreams.de
Mon Oct 21 23:16:29 AEDT 2019
> irq_received = readl(bus->base + ASPEED_I2C_INTR_STS_REG);
> + if (!irq_received)
> + return IRQ_NONE;
> /* Ack all interrupts except for Rx done */
> writel(irq_received & ~ASPEED_I2CD_INTR_RX_DONE,
> bus->base + ASPEED_I2C_INTR_STS_REG);
> I think it's a right fix for the issue. At least, we need to prevent
> any driver state corruption. The state machine would run correctly if
> we filtering the garbage interrupt out.
Just unlock the spinlock before you return...
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 833 bytes
Desc: not available
More information about the Linux-aspeed