diff options
-rw-r--r-- | arch/x86/kernel/time_64.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/tsc_64.c | 3 | ||||
-rw-r--r-- | include/asm-x86/timex.h | 19 | ||||
-rw-r--r-- | include/asm-x86/timex_32.h | 22 | ||||
-rw-r--r-- | include/asm-x86/timex_64.h | 31 | ||||
-rw-r--r-- | include/asm-x86/tsc.h | 11 |
6 files changed, 24 insertions, 63 deletions
diff --git a/arch/x86/kernel/time_64.c b/arch/x86/kernel/time_64.c index 16f58886e8dc..aca081c37884 100644 --- a/arch/x86/kernel/time_64.c +++ b/arch/x86/kernel/time_64.c | |||
@@ -328,7 +328,6 @@ void __init time_init(void) | |||
328 | else | 328 | else |
329 | vgetcpu_mode = VGETCPU_LSL; | 329 | vgetcpu_mode = VGETCPU_LSL; |
330 | 330 | ||
331 | set_cyc2ns_scale(tsc_khz); | ||
332 | printk(KERN_INFO "time.c: Detected %d.%03d MHz processor.\n", | 331 | printk(KERN_INFO "time.c: Detected %d.%03d MHz processor.\n", |
333 | cpu_khz / 1000, cpu_khz % 1000); | 332 | cpu_khz / 1000, cpu_khz % 1000); |
334 | init_tsc_clocksource(); | 333 | init_tsc_clocksource(); |
diff --git a/arch/x86/kernel/tsc_64.c b/arch/x86/kernel/tsc_64.c index 59baecd135ab..9f22e542c374 100644 --- a/arch/x86/kernel/tsc_64.c +++ b/arch/x86/kernel/tsc_64.c | |||
@@ -20,7 +20,7 @@ EXPORT_SYMBOL(tsc_khz); | |||
20 | 20 | ||
21 | static unsigned int cyc2ns_scale __read_mostly; | 21 | static unsigned int cyc2ns_scale __read_mostly; |
22 | 22 | ||
23 | void set_cyc2ns_scale(unsigned long khz) | 23 | static inline void set_cyc2ns_scale(unsigned long khz) |
24 | { | 24 | { |
25 | cyc2ns_scale = (NSEC_PER_MSEC << NS_SCALE) / khz; | 25 | cyc2ns_scale = (NSEC_PER_MSEC << NS_SCALE) / khz; |
26 | } | 26 | } |
@@ -206,6 +206,7 @@ void __init tsc_calibrate(void) | |||
206 | } | 206 | } |
207 | 207 | ||
208 | tsc_khz = tsc2 / tsc1; | 208 | tsc_khz = tsc2 / tsc1; |
209 | set_cyc2ns_scale(tsc_khz); | ||
209 | } | 210 | } |
210 | 211 | ||
211 | /* | 212 | /* |
diff --git a/include/asm-x86/timex.h b/include/asm-x86/timex.h index d01c18cfccef..39a21ab030f0 100644 --- a/include/asm-x86/timex.h +++ b/include/asm-x86/timex.h | |||
@@ -1,5 +1,18 @@ | |||
1 | #ifdef CONFIG_X86_32 | 1 | /* x86 architecture timex specifications */ |
2 | # include "timex_32.h" | 2 | #ifndef _ASM_X86_TIMEX_H |
3 | #define _ASM_X86_TIMEX_H | ||
4 | |||
5 | #include <asm/processor.h> | ||
6 | #include <asm/tsc.h> | ||
7 | |||
8 | #ifdef CONFIG_X86_ELAN | ||
9 | # define PIT_TICK_RATE 1189200 /* AMD Elan has different frequency! */ | ||
3 | #else | 10 | #else |
4 | # include "timex_64.h" | 11 | # define PIT_TICK_RATE 1193182 /* Underlying HZ */ |
12 | #endif | ||
13 | #define CLOCK_TICK_RATE PIT_TICK_RATE | ||
14 | |||
15 | extern int read_current_timer(unsigned long *timer_value); | ||
16 | #define ARCH_HAS_READ_CURRENT_TIMER 1 | ||
17 | |||
5 | #endif | 18 | #endif |
diff --git a/include/asm-x86/timex_32.h b/include/asm-x86/timex_32.h deleted file mode 100644 index fa8839465bdb..000000000000 --- a/include/asm-x86/timex_32.h +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | /* | ||
2 | * linux/include/asm-i386/timex.h | ||
3 | * | ||
4 | * i386 architecture timex specifications | ||
5 | */ | ||
6 | #ifndef _ASMi386_TIMEX_H | ||
7 | #define _ASMi386_TIMEX_H | ||
8 | |||
9 | #include <asm/processor.h> | ||
10 | #include <asm/tsc.h> | ||
11 | |||
12 | #ifdef CONFIG_X86_ELAN | ||
13 | # define PIT_TICK_RATE 1189200 /* AMD Elan has different frequency! */ | ||
14 | #else | ||
15 | # define PIT_TICK_RATE 1193182 /* Underlying HZ */ | ||
16 | #endif | ||
17 | #define CLOCK_TICK_RATE PIT_TICK_RATE | ||
18 | |||
19 | extern int read_current_timer(unsigned long *timer_value); | ||
20 | #define ARCH_HAS_READ_CURRENT_TIMER 1 | ||
21 | |||
22 | #endif | ||
diff --git a/include/asm-x86/timex_64.h b/include/asm-x86/timex_64.h deleted file mode 100644 index 901bf89ce643..000000000000 --- a/include/asm-x86/timex_64.h +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | /* | ||
2 | * linux/include/asm-x86_64/timex.h | ||
3 | * | ||
4 | * x86-64 architecture timex specifications | ||
5 | */ | ||
6 | #ifndef _ASMx8664_TIMEX_H | ||
7 | #define _ASMx8664_TIMEX_H | ||
8 | |||
9 | #include <asm/msr.h> | ||
10 | #include <asm/vsyscall.h> | ||
11 | #include <asm/system.h> | ||
12 | #include <asm/processor.h> | ||
13 | #include <asm/tsc.h> | ||
14 | #include <linux/compiler.h> | ||
15 | |||
16 | #define PIT_TICK_RATE 1193182UL | ||
17 | #define CLOCK_TICK_RATE PIT_TICK_RATE /* Underlying HZ */ | ||
18 | |||
19 | extern int read_current_timer(unsigned long *timer_value); | ||
20 | #define ARCH_HAS_READ_CURRENT_TIMER 1 | ||
21 | |||
22 | #define USEC_PER_TICK (USEC_PER_SEC / HZ) | ||
23 | #define NSEC_PER_TICK (NSEC_PER_SEC / HZ) | ||
24 | #define FSEC_PER_TICK (FSEC_PER_SEC / HZ) | ||
25 | |||
26 | #define NS_SCALE 10 /* 2^10, carefully chosen */ | ||
27 | #define US_SCALE 32 /* 2^32, arbitralrily chosen */ | ||
28 | |||
29 | extern void mark_tsc_unstable(char *msg); | ||
30 | extern void set_cyc2ns_scale(unsigned long khz); | ||
31 | #endif | ||
diff --git a/include/asm-x86/tsc.h b/include/asm-x86/tsc.h index 2002f8d6d20a..6baab30dc2c8 100644 --- a/include/asm-x86/tsc.h +++ b/include/asm-x86/tsc.h | |||
@@ -1,13 +1,14 @@ | |||
1 | /* | 1 | /* |
2 | * linux/include/asm-i386/tsc.h | 2 | * x86 TSC related functions |
3 | * | ||
4 | * i386 TSC related functions | ||
5 | */ | 3 | */ |
6 | #ifndef _ASM_i386_TSC_H | 4 | #ifndef _ASM_X86_TSC_H |
7 | #define _ASM_i386_TSC_H | 5 | #define _ASM_X86_TSC_H |
8 | 6 | ||
9 | #include <asm/processor.h> | 7 | #include <asm/processor.h> |
10 | 8 | ||
9 | #define NS_SCALE 10 /* 2^10, carefully chosen */ | ||
10 | #define US_SCALE 32 /* 2^32, arbitralrily chosen */ | ||
11 | |||
11 | /* | 12 | /* |
12 | * Standard way to access the cycle counter. | 13 | * Standard way to access the cycle counter. |
13 | */ | 14 | */ |