On 04/16/2015 02:05 PM, Charles Keepax wrote: > Commit 523c5b89640e ("i2c: Remove support for legacy PM") removed the PM > ops from the bus type, which causes the pm operations on the s3c2410 > adapter device to fail (-ENOSUPP in rpm_callback). The adapter device > doesn't get bound to a driver and as such can't have its own pm_runtime > callbacks. Previously this was fine as the bus callbacks would have been > used, but now this can cause devices which use PM runtime and are > attached over I2C to fail to resume. > > This commit fixes this issue by marking all adapter devices with > pm_runtime_no_callbacks, since they can't have any. > > Signed-off-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx> > --- > > Changes since v1: > - Simple mark all adapter devices with pm_runtime_no_callbacks in the i2c > core > > Thanks, > Charles > > drivers/i2c/i2c-core.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c > index 1672e6b..eac3331 100644 > --- a/drivers/i2c/i2c-core.c > +++ b/drivers/i2c/i2c-core.c > @@ -1410,6 +1410,8 @@ static int i2c_register_adapter(struct i2c_adapter *adap) > > dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name); > > + pm_runtime_no_callbacks(&adap->dev); > + > #ifdef CONFIG_I2C_COMPAT > res = class_compat_create_link(i2c_adapter_compat_class, &adap->dev, > adap->dev.parent); Thereis at least one more casewhen an I2C device fails to resume due to bus callbacks being dropped(like fimc-is-i2c driver for exynos4-is, the same scenario), so I'm glad to see it's being handled in on place -it saves the trouble. BR Beata -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html