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-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html