Re: [PATCH] i2c: Prevent runtime suspend of adapter when Host Notify is required
From: Keijo Vaara <hidden>
Date: 2019-05-02 08:08:11
Also in:
linux-i2c, stable
On Tue, Apr 30, 2019 at 4:23 PM Jarkko Nikula [off-list ref] wrote:
quoted hunk ↗ jump to hunk
--- Keijo: could you test this does it fix the issue you reported? This is practically the same diff I sent earlier what you probably haven't tested yet. I wanted to send a commitable fix in case it works since I'll be out of office in a few coming days. --- drivers/i2c/i2c-core-base.c | 4 ++++ 1 file changed, 4 insertions(+)diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index 38af18645133..8149c9e32b69 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c@@ -327,6 +327,8 @@ static int i2c_device_probe(struct device *dev) if (client->flags & I2C_CLIENT_HOST_NOTIFY) { dev_dbg(dev, "Using Host Notify IRQ\n"); + /* Keep adapter active when Host Notify is required */ + pm_runtime_get_sync(&client->adapter->dev); irq = i2c_smbus_host_notify_to_irq(client); } else if (dev->of_node) { irq = of_irq_get_byname(dev->of_node, "irq");@@ -431,6 +433,8 @@ static int i2c_device_remove(struct device *dev) device_init_wakeup(&client->dev, false); client->irq = client->init_irq; + if (client->flags & I2C_CLIENT_HOST_NOTIFY) + pm_runtime_put(&client->adapter->dev); return status; } --2.20.1
Thanks guys, I've tested the patch and can confirm it fixes the issue.