Thread (4 messages) 4 messages, 4 authors, 2019-05-02

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help