Re: [PATCH] i2c: Prevent runtime suspend of adapter when Host Notify is required

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 30, 2019 at 4:23 PM Jarkko Nikula
<jarkko.nikula@xxxxxxxxxxxxxxx> wrote:
>
> ---
> 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.




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux