| From 6ada5c1e1b077ab98fc144d7ac132b4dcc0148ec Mon Sep 17 00:00:00 2001 |
| From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> |
| Date: Thu, 16 Apr 2015 13:05:19 +0100 |
| Subject: i2c: Mark adapter devices with pm_runtime_no_callbacks |
| |
| From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> |
| |
| commit 6ada5c1e1b077ab98fc144d7ac132b4dcc0148ec upstream. |
| |
| 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> |
| Acked-by: Beata Michalska <b.michalska@samsung.com> |
| Signed-off-by: Wolfram Sang <wsa@the-dreams.de> |
| Fixes: 523c5b89640e |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/i2c/i2c-core.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/i2c/i2c-core.c |
| +++ b/drivers/i2c/i2c-core.c |
| @@ -1410,6 +1410,8 @@ static int i2c_register_adapter(struct i |
| |
| 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); |