• Ulf Hansson's avatar
    PM: Add pm_runtime_suspend|resume_force functions · 37f20416
    Ulf Hansson authored
    This patch provides two new runtime PM helper functions which intend to
    be used from system suspend/resume callbacks, to make sure devices are
    put into low power state during system suspend and brought back to full
    power at system resume.
    
    The prerequisite is to have all levels of a device's runtime PM
    callbacks to be defined through the SET_PM_RUNTIME_PM_OPS macro, which
    means these are available for CONFIG_PM.
    
    By using the new runtime PM helper functions especially the two
    scenarios below will be addressed.
    
    1) The PM core prevents .runtime_suspend callbacks from being invoked
    during system suspend. That means even for a runtime PM centric
    subsystem and driver, the device needs to be put into low power state
    from a system suspend callback. Otherwise it may very well be left in
    full power state (runtime resumed) while the system is suspended. By
    using the new helper functions, we make sure to walk the hierarchy of
    a device's power domain, subsystem and driver.
    
    2) Subsystems and drivers need to cope with all the combinations of
    CONFIG_PM_SLEEP and CONFIG_PM_RUNTIME. The two new helper functions
    smothly addresses this.
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    37f20416
runtime.c 40.5 KB