]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/hrtimer.h
hrtimer: add a hrtimer_start_range() function
[linux-2.6-omap-h63xx.git] / include / linux / hrtimer.h
index 4c1a834b984987bf78afe9ca0c7952d630b731cc..1c0473e8ecb406bf113390f2535c29e05c4a8742 100644 (file)
@@ -350,13 +350,20 @@ static inline void destroy_hrtimer_on_stack(struct hrtimer *timer) { }
 /* Basic timer operations: */
 extern int hrtimer_start(struct hrtimer *timer, ktime_t tim,
                         const enum hrtimer_mode mode);
+extern int hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
+                       unsigned long range_ns, const enum hrtimer_mode mode);
 extern int hrtimer_cancel(struct hrtimer *timer);
 extern int hrtimer_try_to_cancel(struct hrtimer *timer);
 
 static inline int hrtimer_start_expires(struct hrtimer *timer,
                                                enum hrtimer_mode mode)
 {
-       return hrtimer_start(timer, hrtimer_get_expires(timer), mode);
+       unsigned long delta;
+       ktime_t soft, hard;
+       soft = hrtimer_get_softexpires(timer);
+       hard = hrtimer_get_expires(timer);
+       delta = ktime_to_ns(ktime_sub(hard, soft));
+       return hrtimer_start_range_ns(timer, hrtimer_get_expires(timer), delta, mode);
 }
 
 static inline int hrtimer_restart(struct hrtimer *timer)