Re: System sleep vs. runtime PM

Oliver Neukum
2009-12-03T19:34:39Z

Am Donnerstag, 3. Dezember 2009 18:50:28 schrieb Alan Stern:
> On Thu, 3 Dec 2009, Oliver Neukum wrote:
> > > However, I don't see any reason to know what woke us up. All we really
> > > need to know is what devices have wakeup requests outstanding when the
> > > system resume is finished. It doesn't matter which request came first
> > > (presumably that was the one which woke us up).
> >
> > That assumes that the firmware doesn't do anything stupid with
> > pending remote wakeups as it resumes the system. I'd call this
> > unwarranted optimism. The conservative solution would be to resume
> > every device whose driver has requested remote wakeup be enabled.
>
> Drivers certainly can use that as one of their criteria for whether to
> power-up a device during system resume.

Leaving this decision to the drivers won't work because they don't
know enough.
For reliable operation we must guarantee no remote wakeup is lost.
But remote wakeups must travel a whole chain of busses and the
guarantees is of the weakest link apply. Drivers must not know
over which busses they are connected higher up.

Therefore you must make the decision in core. But the core doesn't
know specifics. Unless you really want to overengineer this and compute
the reliability of each path, resuming only those whose drivers have
requested that remote wakeup be enabled is the best you can do.

Regards
Oliver