Message ID | 1429185919-26098-1-git-send-email-ckeepax@opensource.wolfsonmicro.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
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@opensource.wolfsonmicro.com> > --- > > 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-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Apr 16, 2015 at 01:05:19PM +0100, 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@opensource.wolfsonmicro.com> Applied to for-current, thanks! Will push out somewhat later today. Lars-Peter, if you'd like to donate some ack/review tag until then, this would be much appreciated.
On Thu, Apr 16, 2015 at 02:28:02PM +0200, Beata Michalska wrote: > 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@opensource.wolfsonmicro.com> > > 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. Thanks for the confirmation! If you could also add a formal 'Acked-by' next time, this would help me because patchwork collects them for me automatically.
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);
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@opensource.wolfsonmicro.com> --- 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(-)