The generic problem this series is trying to solve, is that for some bus types
and PM domains, it's not sufficient to only check the return value from
device_may_wakeup(), to fully understand how to treat the device during system
suspend.

One particular case that suffers from this, is the generic PM domain (aka genpd)
and that is taken care of in the final change in this series.

The special case this series address, is to enable drivers to instruct bus types
and PM domains, that the device need to remain in its current power state in
case it should be able to generate wakeup signals during system suspend. This is
done by an opt-in method, however bus types and PM domains that has additional
knowledge about devices' wakeup settings may still override the setting.

Geert Uytterhoeven, has been working on some related problems for some Renesas
SoCs [1], to be able to properly configure WakeOnLAN, for some ethernet
devices/drivers, which are used together with genpd. My intent is that this
series enables a solution for those problems.

[1]
https://www.spinics.net/lists/linux-renesas-soc/msg19319.html 

Changes in v2:
        - See change logs for each patch.


Ulf Hansson (3):
  PM / core: Re-factor some code dealing with parents in
    __device_suspend()
  PM / core: Add IN_BAND_WAKEUP driver flag
  PM / Domains: Take wakeup_path_in_band status flag into account

 Documentation/driver-api/pm/devices.rst | 11 +++++++++++
 drivers/base/power/domain.c             |  6 ++++--
 drivers/base/power/main.c               | 35 ++++++++++++++++++++++-----------
 include/linux/pm.h                      |  6 ++++++
 4 files changed, 44 insertions(+), 14 deletions(-)

-- 
2.7.4

Reply via email to