lkml.org 
[lkml]   [2009]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch update] PM: Introduce core framework for run-time PM of I/O devices
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



\
 
 \ /
  Last update: 2009-06-15 23:11    [W:0.148 / U:2.168 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site