Message ID | 20240709105412.1685181-1-tmaimon77@gmail.com |
---|---|
State | New |
Headers | show |
Series | [linux,dev-6.6,v1] i2c: npcm7xx: disable I2C interrupt before devm_request_irq | expand |
On Tue, 2024-07-09 at 13:54 +0300, Tomer Maimon wrote: > This patch fix NPCM I2C driver issue that causing a soft lockup issue. > > Upon investigation, it was found that during an I2C transaction, the BMC > machine reboots unexpectedly, leaving the I2C module in an unchanged > state. As a result, the I2C interrupt (IRQ) handler continues to be > triggered. To address this, NPCM I2C probe function disable the I2C > interrupt enable bit in the I2C module before invoking devm_request_irq > function. > > Signed-off-by: Tyrone Ting <kfting@nuvoton.com> > Signed-off-by: Tomer Maimon <tmaimon77@gmail.com> > --- > drivers/i2c/busses/i2c-npcm7xx.c | 2 ++ > 1 file changed, 2 insertions(+) What's the state of this patch with respect to upstream? Is this something specific to the openbmc/linux dev-6.6 tree, or is there an upstream equivalent? If the latter, can you please link to the relevant patch? Andrew
Hi Andrew, On Tue, 16 Jul 2024 at 06:26, Andrew Jeffery <andrew@codeconstruct.com.au> wrote: > > On Tue, 2024-07-09 at 13:54 +0300, Tomer Maimon wrote: > > This patch fix NPCM I2C driver issue that causing a soft lockup issue. > > > > Upon investigation, it was found that during an I2C transaction, the BMC > > machine reboots unexpectedly, leaving the I2C module in an unchanged > > state. As a result, the I2C interrupt (IRQ) handler continues to be > > triggered. To address this, NPCM I2C probe function disable the I2C > > interrupt enable bit in the I2C module before invoking devm_request_irq > > function. > > > > Signed-off-by: Tyrone Ting <kfting@nuvoton.com> > > Signed-off-by: Tomer Maimon <tmaimon77@gmail.com> > > --- > > drivers/i2c/busses/i2c-npcm7xx.c | 2 ++ > > 1 file changed, 2 insertions(+) > > What's the state of this patch with respect to upstream? Is this > something specific to the openbmc/linux dev-6.6 tree, or is there an > upstream equivalent? If the latter, can you please link to the relevant > patch? This patch set hasn't been upstream yet to OpenBMC vanilla and Its not specific to openbmc/linux dev-6.6 tree. We plan to upstream it to Linux version 6.11 (I believe it the next few weeks), since we need to upgrade the NPCM from dev-6.1 to dev-6.6, we would appreciate if you could add it now to dev-6.6 > > Andrew Thanks, Tomer
diff --git a/drivers/i2c/busses/i2c-npcm7xx.c b/drivers/i2c/busses/i2c-npcm7xx.c index ae4bae63ad4f..ca73760522f5 100644 --- a/drivers/i2c/busses/i2c-npcm7xx.c +++ b/drivers/i2c/busses/i2c-npcm7xx.c @@ -2333,6 +2333,8 @@ static int npcm_i2c_probe_bus(struct platform_device *pdev) if (irq < 0) return irq; + npcm_i2c_int_enable(bus, false); + ret = devm_request_irq(bus->dev, irq, npcm_i2c_bus_irq, 0, dev_name(bus->dev), bus); if (ret)