I think many folks are still confused about exactly the problem beingsolved by this series as well as mixed up between opportunisticsuspend and suspend blockers. Also, how this series impatcs the restof the kernel (especially PM-aware drivers and subsystems) has causeda bit of confusion.

To help with the confusion, I think a much clearer description of theproblem being solved and the proposed solution is needed.

To that end, I created a starting point for that below whichsummarizes how I understand the problem and the proposed solution, butof course this should be filled out in more detail and updated as partof the documentation that goes with this series.

Want to to hit deep power state, even when the system is not actuallyidle.

Why?

- some hardware is not capable of deep power states in idle- difficulty getting userspace and/or kernel to be idle

2 Solution: Opportunistic suspend ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Create an additional "idle path" which has new rules for determiningidleness. When this new "idle" is reached, trigger full-systemsuspend. Since a suspend is triggered whenever the opportunityarises, this is called opportunistic suspend.

The new rules for making the idleness decision are simple:

1. system may suspend if and only if no suspend blockers are held

2.1 When to use a suspend blocker ==================================

[A list of reasons why suspend blockers might be used would be very helpful here.]