uml: clocksource support
authorJeff Dike <jdike@addtoit.com>
Tue, 16 Oct 2007 08:27:25 +0000 (01:27 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 16 Oct 2007 16:43:08 +0000 (09:43 -0700)
Add clocksource support.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/um/kernel/time.c

index 0167848..3cb7135 100644 (file)
@@ -97,6 +97,21 @@ static irqreturn_t um_timer(int irq, void *dev)
        return IRQ_HANDLED;
 }
 
+static cycle_t itimer_read(void)
+{
+       return os_nsecs();
+}
+
+static struct clocksource itimer_clocksource = {
+       .name           = "itimer",
+       .rating         = 300,
+       .read           = itimer_read,
+       .mask           = CLOCKSOURCE_MASK(64),
+       .mult           = 1,
+       .shift          = 0,
+       .flags          = CLOCK_SOURCE_IS_CONTINUOUS,
+};
+
 static void __init setup_itimer(void)
 {
        int err;
@@ -111,6 +126,11 @@ static void __init setup_itimer(void)
                clockevent_delta2ns(60 * HZ, &itimer_clockevent);
        itimer_clockevent.min_delta_ns =
                clockevent_delta2ns(1, &itimer_clockevent);
+       err = clocksource_register(&itimer_clocksource);
+       if (err) {
+               printk(KERN_ERR "clocksource_register returned %d\n", err);
+               return;
+       }
        clockevents_register_device(&itimer_clockevent);
 }