From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Rafael J. Wysocki" Subject: Re: [PATCH 2/7] PM: move code in power/runtime.c Date: Sat, 25 Sep 2010 23:44:18 +0200 Message-ID: <201009252344.18881.rjw@sisk.pl> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: 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: Linux-pm mailing list List-Id: linux-pm@vger.kernel.org On Friday, September 24, 2010, Alan Stern wrote: > This patch (as1421) moves the PM runtime accounting subroutines up to > the beginning of runtime.c, taking them out of the middle of the > functions that do the actual work. No operational changes. > > Signed-off-by: Alan Stern Appled to suspend-2.6/linux-next. Thanks, Rafael > --- > > Index: usb-2.6/drivers/base/power/runtime.c > =================================================================== > --- usb-2.6.orig/drivers/base/power/runtime.c > +++ usb-2.6/drivers/base/power/runtime.c > @@ -15,6 +15,44 @@ static int __pm_request_idle(struct devi > static int __pm_request_resume(struct device *dev); > > /** > + * update_pm_runtime_accounting - Update the time accounting of power states > + * @dev: Device to update the accounting for > + * > + * In order to be able to have time accounting of the various power states > + * (as used by programs such as PowerTOP to show the effectiveness of runtime > + * PM), we need to track the time spent in each state. > + * update_pm_runtime_accounting must be called each time before the > + * runtime_status field is updated, to account the time in the old state > + * correctly. > + */ > +void update_pm_runtime_accounting(struct device *dev) > +{ > + unsigned long now = jiffies; > + int delta; > + > + delta = now - dev->power.accounting_timestamp; > + > + if (delta < 0) > + delta = 0; > + > + dev->power.accounting_timestamp = now; > + > + if (dev->power.disable_depth > 0) > + return; > + > + if (dev->power.runtime_status == RPM_SUSPENDED) > + dev->power.suspended_jiffies += delta; > + else > + dev->power.active_jiffies += delta; > +} > + > +static void __update_runtime_status(struct device *dev, enum rpm_status status) > +{ > + update_pm_runtime_accounting(dev); > + dev->power.runtime_status = status; > +} > + > +/** > * pm_runtime_deactivate_timer - Deactivate given device's suspend timer. > * @dev: Device to handle. > */ > @@ -123,45 +161,6 @@ int pm_runtime_idle(struct device *dev) > } > EXPORT_SYMBOL_GPL(pm_runtime_idle); > > - > -/** > - * update_pm_runtime_accounting - Update the time accounting of power states > - * @dev: Device to update the accounting for > - * > - * In order to be able to have time accounting of the various power states > - * (as used by programs such as PowerTOP to show the effectiveness of runtime > - * PM), we need to track the time spent in each state. > - * update_pm_runtime_accounting must be called each time before the > - * runtime_status field is updated, to account the time in the old state > - * correctly. > - */ > -void update_pm_runtime_accounting(struct device *dev) > -{ > - unsigned long now = jiffies; > - int delta; > - > - delta = now - dev->power.accounting_timestamp; > - > - if (delta < 0) > - delta = 0; > - > - dev->power.accounting_timestamp = now; > - > - if (dev->power.disable_depth > 0) > - return; > - > - if (dev->power.runtime_status == RPM_SUSPENDED) > - dev->power.suspended_jiffies += delta; > - else > - dev->power.active_jiffies += delta; > -} > - > -static void __update_runtime_status(struct device *dev, enum rpm_status status) > -{ > - update_pm_runtime_accounting(dev); > - dev->power.runtime_status = status; > -} > - > /** > * __pm_runtime_suspend - Carry out run-time suspend of given device. > * @dev: Device to suspend. > > >