[PATCH] i2c: nomadik: Fixup system suspend
Linus Walleij
linus.walleij at linaro.org
Thu Apr 10 11:49:41 PDT 2014
On Thu, Apr 10, 2014 at 3:59 PM, Ulf Hansson <ulf.hansson at linaro.org> wrote:
> For !CONFIG_PM_RUNTIME, the device were never put back into active
> state while resuming.
>
> For CONFIG_PM_RUNTIME, we blindly trusted the device to be inactive
> while we were about to handle it at suspend late, which is just too
> optimistic.
>
> Even if the driver uses pm_runtime_put_sync() after each tranfer to
> return it's runtime PM resources, there are no guarantees this will
> actually mean the device will inactivated. The reason is that the PM
> core will prevent runtime suspend during system suspend, and thus when
> a transfer occurs during the early phases of system suspend the device
> will be kept active after the transfer.
>
> To handle both issues above, use pm_runtime_force_suspend|resume() from
> the system suspend|resume callbacks.
>
> Cc: Alessandro Rubini <rubini at unipv.it>
> Cc: Linus Walleij <linus.walleij at linaro.org>
> Cc: Wolfram Sang <wsa at the-dreams.de>
> Signed-off-by: Ulf Hansson <ulf.hansson at linaro.org>
Acked-by: Linus Walleij <linus.walleij at linaro.org>
Yours,
Linus Walleij
More information about the linux-arm-kernel
mailing list