Re: [patch update] PM: Introduce core framework for run-time PM of I/O devices

Alan Stern
2009-06-15T21:09:17Z

On Mon, 15 Jun 2009, Rafael J. Wysocki wrote:

> On Sunday 14 June 2009, Rafael J. Wysocki wrote:
> > On Sunday 14 June 2009, Rafael J. Wysocki wrote:
> > > Hi,
> > >
> > > Below is the current version of my "run-time PM for I/O devices" patch.
> > >
> > > I've done my best to address the comments received during the recent
> > > discussions, but at the same time I've tried to make the patch only contain
> > > the most essential things. For this reason, for example, the sysfs interface
> > > is not there and it's going to be added in a separate patch.
> > >
> > > Please let me know if you want me to change anything in this patch or to add
> > > anything new to it. [Magnus, I remember you wanted something like
> > > ->runtime_wakeup() along with ->runtime_idle(), but I'm not sure it's really
> > > necessary. Please let me know if you have any particular usage scenario for
> > > it.]
>
> Appended is an update of the patch addressing the today's comments from Magnus.

This is really looking very good. I'll do a more detailed review
later. (In particular, I have not checked the details of the rather
intricate state machine transitions.) For now, a couple of things
struck my eye:

Shouldn't the calls to complete() really be complete_all()? There
might be more than one thread waiting for a suspend or resume callback
to finish.

Since pm_runtime_resume() takes care of powering up the parent, there's
no need for pm_request_resume() to worry about it also.

The documentation should mention that the runtime_suspend method is
supposed to enable remote wakeup if it as available and if
device_may_wakeup(dev) is true.

Alan Stern