On Wed, May 06, 2020 at 09:33:55PM +0200, Thierry Reding wrote: [...] > --- a/drivers/i2c/busses/i2c-tegra.c > +++ b/drivers/i2c/busses/i2c-tegra.c > @@ -1769,10 +1769,14 @@ static int tegra_i2c_remove(struct platform_device *pdev) > static int __maybe_unused tegra_i2c_suspend(struct device *dev) > { > struct tegra_i2c_dev *i2c_dev = dev_get_drvdata(dev); > + int err = 0; > > i2c_mark_adapter_suspended(&i2c_dev->adapter); > > - return 0; > + if (!pm_runtime_status_suspended(dev)) > + err = tegra_i2c_runtime_suspend(dev); > + > + return err; > } > > static int __maybe_unused tegra_i2c_resume(struct device *dev) > @@ -1788,9 +1792,11 @@ static int __maybe_unused tegra_i2c_resume(struct device *dev) > if (err) > return err; > > - err = tegra_i2c_runtime_suspend(dev); > - if (err) > - return err; > + if (pm_runtime_status_suspended(dev)) { [...] Shouldn't this be negated as in suspend? I would assume that inbetween suspend and resume nothing changes the stored state. Best Regards, Michał Mirosław