[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+V-a8v5qFC+uxzC8Qw4F3M1XSFnVq90MWxbvmiRks=ZbkzZjw@mail.gmail.com>
Date: Wed, 30 Apr 2025 21:29:31 +0100
From: "Lad, Prabhakar" <prabhakar.csengg@...il.com>
To: Wolfram Sang <wsa+renesas@...g-engineering.com>,
Prabhakar <prabhakar.csengg@...il.com>, Chris Brandt <chris.brandt@...esas.com>,
Andi Shyti <andi.shyti@...nel.org>, Geert Uytterhoeven <geert+renesas@...der.be>,
Andy Shevchenko <andy@...nel.org>, linux-renesas-soc@...r.kernel.org,
linux-i2c@...r.kernel.org, linux-kernel@...r.kernel.org,
Biju Das <biju.das.jz@...renesas.com>,
Fabrizio Castro <fabrizio.castro.jz@...esas.com>,
Lad Prabhakar <prabhakar.mahadev-lad.rj@...renesas.com>
Subject: Re: [PATCH v9 2/2] i2c: riic: Recover from arbitration loss
Hi Wolfram,
Thank you for the quick review.
On Wed, Apr 30, 2025 at 9:17 PM Wolfram Sang
<wsa+renesas@...g-engineering.com> 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
Download attachment "arbitration.png" of type "image/png" (127067 bytes)
Powered by blists - more mailing lists