The second part is easy. Userspace doesn't need to do anything special
to acknowledge that a suspend is now okay; it just has to remove the
conditions that led the driver to block suspends in the first place.
For example, if suspends are blocked because some input event has been
Why? What's wrong with overlapping blockers? It's a very common
idiom. For example, the same sort of thing is used when locking
subtrees of a tree: You lock the root node, and then use overlapping
Userspace acks aren't the issue; the issue is how (and when) kernel
drivers should initiate a blocker. Switching to notifications, misc
No and no. Nothing special is needed. All userspace needs to do is
remove the condition that led to the blocker being enabled initially --
which is exactly what userspace would do normally anyway.
Alan Stern
--