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

Alan Stern
2009-06-22T16:28:30Z

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

> > Again, this boils down to how drivers decide to use the async
> > interface. I can see justifications for both pm_request_resume_get
> > (which would always increment the counter) and pm_request_resume (which
> > would increment the counter only if a work item had to be queued).
>
> OK, so this means we should provide both at the core level and let the drivers
> decide which one to use.
>
> I think in both cases the caller would be responsible for decrementing the
> counter?

Sure. They could call pm_runtime_put just once at the end of their
runtime_resume method (assuming they used pm_request_resume), or they
could call it at every place where some deferred work was finished
(assuming they used pm_request_resume_get).

> > Okay, we don't need it then. I forgot to mention in the previous
> > message that there also has to be a pm_runtime_del() routine, which
> > should cancel pending workqueue items and set the counter to some high
> > value so that no new items are added.
>
> Should that be called by device_pm_remove()? I think so.

Yes. I suppose it could be named pm_runtime_remove. Either would be
okay.

Alan Stern