Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc
[linux-2.6-block.git] / arch / sparc / kernel / time_64.c
index 3b397081047af69a23b6672917e1706786d3134f..2ef8cfa9677ed5b034640be15933e0639026ad49 100644 (file)
@@ -28,7 +28,6 @@
 #include <linux/jiffies.h>
 #include <linux/cpufreq.h>
 #include <linux/percpu.h>
-#include <linux/miscdevice.h>
 #include <linux/rtc/m48t59.h>
 #include <linux/kernel_stat.h>
 #include <linux/clockchips.h>
@@ -54,6 +53,8 @@
 
 DEFINE_SPINLOCK(rtc_lock);
 
+unsigned int __read_mostly vdso_fix_stick;
+
 #ifdef CONFIG_SMP
 unsigned long profile_pc(struct pt_regs *regs)
 {
@@ -831,12 +832,17 @@ static void init_tick_ops(struct sparc64_tick_ops *ops)
 void __init time_init_early(void)
 {
        if (tlb_type == spitfire) {
-               if (is_hummingbird())
+               if (is_hummingbird()) {
                        init_tick_ops(&hbtick_operations);
-               else
+                       clocksource_tick.archdata.vclock_mode = VCLOCK_NONE;
+               } else {
                        init_tick_ops(&tick_operations);
+                       clocksource_tick.archdata.vclock_mode = VCLOCK_TICK;
+                       vdso_fix_stick = 1;
+               }
        } else {
                init_tick_ops(&stick_operations);
+               clocksource_tick.archdata.vclock_mode = VCLOCK_STICK;
        }
 }