Re: [RFC][PATCH] PM: Introduce core framework for run-time PM of I/O devices (rev. 8)

From: Rafael J. Wysocki
Date: Wed Jul 08 2009 - 17:29:46 EST


On Wednesday 08 July 2009, Alan Stern wrote:
> On Wed, 8 Jul 2009, Rafael J. Wysocki wrote:
>
> > > I thought you wanted to avoid this sort of complication.
> >
> > I did, but there might be some benefits. For example, the timer and the work
> > structure provided by dev.power can be used for scheduling such operations
> > if they are defined at the core level.
> >
> > Suppose your device has 3 low power states D1 - D3 (like PCI) and you want it
> > to go into D1 first, then, after a delay, to D2 and finally, again after a
> > delay, to D3. Of course, if there's a resume in the meantime, it should cancel
> > whichever transition is in progress.
> >
> > pm_runtime_suspend() can be used for the first transition, but the bus type or
> > driver will have to provide its own mechanics for going down to D2 and D3,
> > which must be synchronized with its ->runtime_resume(). That might be tricky
> > and the core already has what's necessary (well, almost).
>
> Maybe we can provide a way for drivers to set up their own timer
> callback or work routine for use while the status is RPM_SUSPENDED.

Agreed.

Anyway, I don't think it's really necessary in the Magnus' usage case, as
you pointed out earlier in this thread, so I think we can consider it as
something to add in future.

The current patch is already more that 1200 lines and there's some
documentation to add, so I wouldn't like to make it any bigger. :-)

Best,
Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/