summaryrefslogtreecommitdiff
path: root/kernel/power
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2011-03-30 12:37:49 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:38:28 -0800
commitc8ccd9e6e6a3921a1d616fb9eca8f610cf648b01 (patch)
treee3d793725d0bfed864e0ae3e693ceb7c5567a536 /kernel/power
parentd2da81234fb5cc20a800f07a571eeb8bb0047f3f (diff)
power: wakelock: use get_xtime_and_monotonic_and_sleep_offset in get_expired_time
Change-Id: I6ebe6b954b2ff328d46898d683650dafb9c4fe74 Signed-off-by: Erik Gilling <konkers@android.com>
Diffstat (limited to 'kernel/power')
-rw-r--r--kernel/power/wakelock.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/kernel/power/wakelock.c b/kernel/power/wakelock.c
index ee9781c5adb2..c10d0ee7907e 100644
--- a/kernel/power/wakelock.c
+++ b/kernel/power/wakelock.c
@@ -60,19 +60,15 @@ int get_expired_time(struct wake_lock *lock, ktime_t *expire_time)
struct timespec kt;
struct timespec tomono;
struct timespec delta;
- unsigned long seq;
+ struct timespec sleep;
long timeout;
if (!(lock->flags & WAKE_LOCK_AUTO_EXPIRE))
return 0;
- do {
- seq = read_seqbegin(&xtime_lock);
- timeout = lock->expires - jiffies;
- if (timeout > 0)
- return 0;
- kt = current_kernel_time();
- tomono = __get_wall_to_monotonic();
- } while (read_seqretry(&xtime_lock, seq));
+ get_xtime_and_monotonic_and_sleep_offset(&kt, &tomono, &sleep);
+ timeout = lock->expires - jiffies;
+ if (timeout > 0)
+ return 0;
jiffies_to_timespec(-timeout, &delta);
set_normalized_timespec(&ts, kt.tv_sec + tomono.tv_sec - delta.tv_sec,
kt.tv_nsec + tomono.tv_nsec - delta.tv_nsec);