Re: [PATCH v9 2/2] i2c: riic: Recover from arbitration loss

From: Lad, Prabhakar
Date: Wed Apr 30 2025 - 16:30:18 EST


Hi Wolfram,

Thank you for the quick review.

On Wed, Apr 30, 2025 at 9:17 PM Wolfram Sang
<wsa+renesas@xxxxxxxxxxxxxxxxxxxx> wrote:
>
>
> > Add support for detecting arbitration loss in the RIIC controller. For
> > certain slave devices, it was observed that after I2C recovery, the
> > transmission triggered an arbitration loss. To handle this, initiate
> > the I2C recovery sequence and retry the transfer.
>
> Does it maybe work even without triggering recovery again? A pure
> arbitration loss should not need a recovery procedure.
>
Do you mean that upon detecting an arbitration loss, we simply clear
the arbitration bit and retry?

However, when observing the SDA line after recovery, it goes LOW again
during the transfer. I've attached a screenshot of this case: we
recovered from a bus hang, the I2C recovery algorithm brought the bus
to a STOP state, and then a START condition was issued. But after
initiating the transfer, we can see the SDA line being held LOW again.

Cheers,
Prabhakar

Attachment: arbitration.png
Description: PNG image