On Thu, Apr 10, 2014 at 3:59 PM, Ulf Hansson <ulf.hansson@xxxxxxxxxx> 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@xxxxxxxx> > Cc: Linus Walleij <linus.walleij@xxxxxxxxxx> > Cc: Wolfram Sang <wsa@xxxxxxxxxxxxx> > Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Yours, Linus Walleij -- 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