That's not what I'm saying. What I'm saying is that it would be a big
mistake to force all drivers which implement runtime PM to do it using
a separate code path from system PM.
For some drivers (like USB), carrying out an actual suspend requires a
delay. Right now we implement those delays using wait_event(),
wait_for_completion(), and so on. Would you have us check at runtime
whether or not a system suspend is underway and in each case use a
busy-loop instead if it is?
What happens if, in order to carry out the late-suspend, a driver needs
to acquire a mutex which happens to be held by some other task? That
other task won't be able to run and release the mutex, so you will
deadlock.
Alan Stern
-