Messages in this thread | | | Date | Wed, 4 Oct 2023 00:54:31 +0200 | From | Andi Shyti <> | Subject | Re: [External] Re: [PATCH v2] i2c: aspeed: Fix i2c bus hang in slave read |
| |
Hi Jian,
On Thu, Sep 28, 2023 at 11:04:23AM -0400, Jian Zhang wrote: > > From: "Andi Shyti"<andi.shyti@kernel.org> > > Date: Thu, Sep 28, 2023, 22:51 > > Subject: [External] Re: [PATCH v2] i2c: aspeed: Fix i2c bus hang in slave read > > To: "Jian Zhang"<zhangjian.3032@bytedance.com> > > Cc: <brendan.higgins@linux.dev>, <benh@kernel.crashing.org>, <joel@jms.id.au>, <andrew@aj.id.au>, <zhangjian3032@gmail.com>, <yulei.sh@bytedance.com>, <xiexinnan@bytedance.com>, "Tommy Huang"<tommy_huang@aspeedtech.com>, "Wolfram Sang"<wsa@kernel.org>, "open list:ARM/ASPEED I2C DRIVER"<linux-i2c@vger.kernel.org>, "moderated list:ARM/ASPEED I2C DRIVER"<openbmc@lists.ozlabs.org>, "moderated list:ARM/ASPEED MACHINE SUPPORT"<linux-arm-kernel@lists.infradead.org>, "moderated list:ARM/ASPEED MACHINE SUPPORT"<linux-aspeed@lists.ozlabs.org>, "open list"<linux-kernel@vger.kernel.org> > > Hi Jian, > > > > On Wed, Sep 27, 2023 at 11:42:43PM +0800, Jian Zhang wrote: > > > When the `CONFIG_I2C_SLAVE` option is enabled and the device operates > > > as a slave, a situation arises where the master sends a START signal > > > without the accompanying STOP signal. This action results in a > > > persistent I2C bus timeout. The core issue stems from the fact that > > > the i2c controller remains in a slave read state without a timeout > > > mechanism. As a consequence, the bus perpetually experiences timeouts. > > > > > > In this case, the i2c bus will be reset, but the slave_state reset is > > > missing.
Acked-by: Andi Shyti <andi.shyti@kernel.org>
I checked the flow in the driver and makes sense to me. I'd also love a last minute comment from Brendan or Benjamin or Joel.
> > > Fixes: fee465150b45 ("i2c: aspeed: Reset the i2c controller when timeout occurs") > > > Signed-off-by: Jian Zhang <zhangjian.3032@bytedance.com> > > > > Why I'm failing to find your v1 patch? And where is the > > changelog? > Sorry, something was missing, > v2: > * remove the i2c slave reset and only move the `bus->slave_state = > ASPEED_I2C_SLAVE_INACTIVE` to the aspeed_i2c_init > > [0]: https://lore.kernel.org/linux-arm-kernel/20230810072155.3726352-1-zhangjian.3032@bytedance.com/T/
Thanks! I should really check my filters here.
Andi
> Jian > > > > Andi
| |