summaryrefslogtreecommitdiff
path: root/drivers/base/power/runtime.c
diff options
context:
space:
mode:
authorvenu byravarasu <vbyravarasu@nvidia.com>2011-10-25 11:34:18 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:49:33 -0800
commit9c235136fb8513f8f5033bfbf25e061a703fedf6 (patch)
treea0780f211e3c126429897ae49452d8fffb79d155 /drivers/base/power/runtime.c
parenta4f6c55fc4d7cb10d563a965ae9cabb6a5369081 (diff)
PM: fix calculation mistake in roll-over cases
In case of jiffies roll over, delta is made zero. Hence fixing it, after taking roll over into consideration. Change-Id: I7dacaa12deafbd2bd20705948c0e18292b718aa4 Reviewed-on: http://git-master/r/60147 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com> Rebase-Id: R0fa2027be53f95c16e11e8ea46c833c86182a3a9
Diffstat (limited to 'drivers/base/power/runtime.c')
-rw-r--r--drivers/base/power/runtime.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
index 6a7f7b06968f..535e6e63b9df 100644
--- a/drivers/base/power/runtime.c
+++ b/drivers/base/power/runtime.c
@@ -28,12 +28,13 @@ static int rpm_suspend(struct device *dev, int rpmflags);
void update_pm_runtime_accounting(struct device *dev)
{
unsigned long now = jiffies;
- int delta;
+ unsigned long delta;
+ unsigned long max_num = ~0;
delta = now - dev->power.accounting_timestamp;
- if (delta < 0)
- delta = 0;
+ if (now < dev->power.accounting_timestamp)
+ delta = max_num - dev->power.accounting_timestamp + now;
dev->power.accounting_timestamp = now;