[PATCH v5 07/10] i2c: npcm: Handle spurious interrupts

Tyrone Ting warp5tw at gmail.com
Sat May 21 23:00:35 AEST 2022


Hi Wolfram:

Thank you for your review.

Wolfram Sang <wsa at kernel.org> 於 2022年5月21日 週六 下午1:53寫道:
>
> On Tue, May 17, 2022 at 06:11:39PM +0800, Tyrone Ting wrote:
> > From: Tali Perry <tali.perry1 at gmail.com>
> >
> > On some platforms in rare cases (1 to 100,000 transactions),
> > the i2c gets a spurious interrupt which means that we enter an interrupt
> > but in the interrupt handler we don't find any status bit that points to
> > the reason we got this interrupt.
> >
> > This may be a case of a rare HW issue or signal integrity issue that is
> > still under investigation.
> >
> > In order to overcome this we are doing the following:
> > 1. Disable incoming interrupts in master mode only when slave mode is not
> >    enabled.
> > 2. Clear end of busy (EOB) after every interrupt.
> > 3. Clear other status bits (just in case since we found them cleared)
> > 4. Return correct status during the interrupt that will finish the
> >    transaction.
> >
> > On next xmit transaction if the bus is still busy the master will issue a
> > recovery process before issuing the new transaction.
> >
> > Fixes: 56a1485b102e ("i2c: npcm7xx: Add Nuvoton NPCM I2C controller driver")
> > Signed-off-by: Tali Perry <tali.perry1 at gmail.com>
> > Signed-off-by: Tyrone Ting <kfting at nuvoton.com>
>
> Applied to for-next, thanks!
>

Best Regards,
Tyrone


More information about the openbmc mailing list