From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Rafael J. Wysocki" Subject: Re: [RFC][PATCH] PM: Introduce core framework for run-time PM of I/O devices (rev. 8) Date: Wed, 8 Jul 2009 23:29:50 +0200 Message-ID: <200907082329.51795.rjw__43473.8859221854$1247088789$gmane$org@sisk.pl> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-pm-bounces@lists.linux-foundation.org Errors-To: linux-pm-bounces@lists.linux-foundation.org To: Alan Stern Cc: Greg KH , LKML , ACPI Devel Maling List , Linux-pm mailing list , Ingo Molnar , Arjan van de Ven List-Id: linux-pm@vger.kernel.org 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