• Ulf Hansson's avatar
    PM / core: Assign the wakeup_path status flag in __device_prepare() · 8512220c
    Ulf Hansson authored
    The PM core in the device_prepare() phase, resets the wakeup_path status
    flag to the value of device_may_wakeup(). This means if a ->prepare() or a
    ->suspend() callback for the device would update the device's wakeup
    setting, this doesn't become reflected in the wakeup_path status flag.
    
    In general this isn't a problem, because wakeup settings are not supposed
    to be changed (via for example calling device_set_wakeup_enable()) during
    any system wide suspend/resume phase.  Nevertheless there are some users,
    which can be considered as legacy, that don't conform to this behaviour.
    
    These legacy cases should be corrected, however until that is done, let's
    address the issue from the PM core, by moving the assignment of the
    wakeup_path status flag to the __device_suspend() phase and after the
    ->suspend() callback has been invoked.
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    8512220c
main.c 52.2 KB