diff options
Diffstat (limited to 'arch/v850/kernel/time.c')
-rw-r--r-- | arch/v850/kernel/time.c | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/arch/v850/kernel/time.c b/arch/v850/kernel/time.c deleted file mode 100644 index d810c93fe665..000000000000 --- a/arch/v850/kernel/time.c +++ /dev/null | |||
@@ -1,106 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/v850/kernel/time.c -- Arch-dependent timer functions | ||
3 | * | ||
4 | * Copyright (C) 1991, 1992, 1995, 2001, 2002 Linus Torvalds | ||
5 | * | ||
6 | * This file contains the v850-specific time handling details. | ||
7 | * Most of the stuff is located in the machine specific files. | ||
8 | * | ||
9 | * 1997-09-10 Updated NTP code according to technical memorandum Jan '96 | ||
10 | * "A Kernel Model for Precision Timekeeping" by Dave Mills | ||
11 | */ | ||
12 | |||
13 | #include <linux/errno.h> | ||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/module.h> | ||
16 | #include <linux/param.h> | ||
17 | #include <linux/string.h> | ||
18 | #include <linux/mm.h> | ||
19 | #include <linux/interrupt.h> | ||
20 | #include <linux/time.h> | ||
21 | #include <linux/timex.h> | ||
22 | #include <linux/profile.h> | ||
23 | |||
24 | #include <asm/io.h> | ||
25 | |||
26 | #include "mach.h" | ||
27 | |||
28 | #define TICK_SIZE (tick_nsec / 1000) | ||
29 | |||
30 | /* | ||
31 | * timer_interrupt() needs to keep up the real-time clock, | ||
32 | * as well as call the "do_timer()" routine every clocktick | ||
33 | */ | ||
34 | static irqreturn_t timer_interrupt (int irq, void *dummy, struct pt_regs *regs) | ||
35 | { | ||
36 | #if 0 | ||
37 | /* last time the cmos clock got updated */ | ||
38 | static long last_rtc_update=0; | ||
39 | #endif | ||
40 | |||
41 | /* may need to kick the hardware timer */ | ||
42 | if (mach_tick) | ||
43 | mach_tick (); | ||
44 | |||
45 | do_timer (1); | ||
46 | #ifndef CONFIG_SMP | ||
47 | update_process_times(user_mode(regs)); | ||
48 | #endif | ||
49 | profile_tick(CPU_PROFILING, regs); | ||
50 | #if 0 | ||
51 | /* | ||
52 | * If we have an externally synchronized Linux clock, then update | ||
53 | * CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be | ||
54 | * called as close as possible to 500 ms before the new second starts. | ||
55 | */ | ||
56 | if (ntp_synced() && | ||
57 | xtime.tv_sec > last_rtc_update + 660 && | ||
58 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && | ||
59 | (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) { | ||
60 | if (set_rtc_mmss (xtime.tv_sec) == 0) | ||
61 | last_rtc_update = xtime.tv_sec; | ||
62 | else | ||
63 | last_rtc_update = xtime.tv_sec - 600; /* do it again in 60 s */ | ||
64 | } | ||
65 | #ifdef CONFIG_HEARTBEAT | ||
66 | /* use power LED as a heartbeat instead -- much more useful | ||
67 | for debugging -- based on the version for PReP by Cort */ | ||
68 | /* acts like an actual heart beat -- ie thump-thump-pause... */ | ||
69 | if (mach_heartbeat) { | ||
70 | static unsigned cnt = 0, period = 0, dist = 0; | ||
71 | |||
72 | if (cnt == 0 || cnt == dist) | ||
73 | mach_heartbeat ( 1 ); | ||
74 | else if (cnt == 7 || cnt == dist+7) | ||
75 | mach_heartbeat ( 0 ); | ||
76 | |||
77 | if (++cnt > period) { | ||
78 | cnt = 0; | ||
79 | /* The hyperbolic function below modifies the heartbeat period | ||
80 | * length in dependency of the current (5min) load. It goes | ||
81 | * through the points f(0)=126, f(1)=86, f(5)=51, | ||
82 | * f(inf)->30. */ | ||
83 | period = ((672<<FSHIFT)/(5*avenrun[0]+(7<<FSHIFT))) + 30; | ||
84 | dist = period / 4; | ||
85 | } | ||
86 | } | ||
87 | #endif /* CONFIG_HEARTBEAT */ | ||
88 | #endif /* 0 */ | ||
89 | |||
90 | return IRQ_HANDLED; | ||
91 | } | ||
92 | |||
93 | static int timer_dev_id; | ||
94 | static struct irqaction timer_irqaction = { | ||
95 | .handler = timer_interrupt, | ||
96 | .flags = IRQF_DISABLED, | ||
97 | .mask = CPU_MASK_NONE, | ||
98 | .name = "timer", | ||
99 | .dev_id = &timer_dev_id, | ||
100 | }; | ||
101 | |||
102 | void time_init (void) | ||
103 | { | ||
104 | mach_gettimeofday (&xtime); | ||
105 | mach_sched_init (&timer_irqaction); | ||
106 | } | ||