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 <[email protected]>
> ---
>
> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html