diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-08-19 09:37:03 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-08-31 03:35:46 -0400 |
commit | 845b3944bbdf9e9247849bf037f27ff3a3f26d87 (patch) | |
tree | b14b40b5ba650996c646ed760cfa4b3283e04953 /arch/x86/kernel/apic | |
parent | 736decac643e8982655e22ac7f0e5e61c5b7f9bd (diff) |
x86: Add timer_init to x86_init_ops
The timer init code is convoluted with several quirks and the paravirt
timer chooser. Figuring out which code path is actually taken is not
for the faint hearted.
Move the numaq TSC quirk to tsc_pre_init x86_init_ops function and
replace the paravirt time chooser and the remaining x86 quirk with a
simple x86_init_ops function.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/apic')
-rw-r--r-- | arch/x86/kernel/apic/numaq_32.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/x86/kernel/apic/numaq_32.c b/arch/x86/kernel/apic/numaq_32.c index 71c5ea645865..f1ebed6bd150 100644 --- a/arch/x86/kernel/apic/numaq_32.c +++ b/arch/x86/kernel/apic/numaq_32.c | |||
@@ -129,10 +129,9 @@ void __cpuinit numaq_tsc_disable(void) | |||
129 | } | 129 | } |
130 | } | 130 | } |
131 | 131 | ||
132 | static int __init numaq_pre_time_init(void) | 132 | static void __init numaq_tsc_init(void) |
133 | { | 133 | { |
134 | numaq_tsc_disable(); | 134 | numaq_tsc_disable(); |
135 | return 0; | ||
136 | } | 135 | } |
137 | 136 | ||
138 | static inline int generate_logical_apicid(int quad, int phys_apicid) | 137 | static inline int generate_logical_apicid(int quad, int phys_apicid) |
@@ -262,11 +261,6 @@ static void __init smp_read_mpc_oem(struct mpc_table *mpc) | |||
262 | } | 261 | } |
263 | } | 262 | } |
264 | 263 | ||
265 | static struct x86_quirks numaq_x86_quirks __initdata = { | ||
266 | .arch_pre_time_init = numaq_pre_time_init, | ||
267 | .arch_time_init = NULL, | ||
268 | }; | ||
269 | |||
270 | static __init void early_check_numaq(void) | 264 | static __init void early_check_numaq(void) |
271 | { | 265 | { |
272 | /* | 266 | /* |
@@ -281,13 +275,13 @@ static __init void early_check_numaq(void) | |||
281 | early_get_smp_config(); | 275 | early_get_smp_config(); |
282 | 276 | ||
283 | if (found_numaq) { | 277 | if (found_numaq) { |
284 | x86_quirks = &numaq_x86_quirks; | ||
285 | x86_init.mpparse.mpc_record = numaq_mpc_record; | 278 | x86_init.mpparse.mpc_record = numaq_mpc_record; |
286 | x86_init.mpparse.setup_ioapic_ids = x86_init_noop; | 279 | x86_init.mpparse.setup_ioapic_ids = x86_init_noop; |
287 | x86_init.mpparse.mpc_apic_id = mpc_apic_id; | 280 | x86_init.mpparse.mpc_apic_id = mpc_apic_id; |
288 | x86_init.mpparse.smp_read_mpc_oem = smp_read_mpc_oem; | 281 | x86_init.mpparse.smp_read_mpc_oem = smp_read_mpc_oem; |
289 | x86_init.mpparse.mpc_oem_pci_bus = mpc_oem_pci_bus; | 282 | x86_init.mpparse.mpc_oem_pci_bus = mpc_oem_pci_bus; |
290 | x86_init.mpparse.mpc_oem_bus_info = mpc_oem_bus_info; | 283 | x86_init.mpparse.mpc_oem_bus_info = mpc_oem_bus_info; |
284 | x86_init.timers.tsc_pre_init = numaq_tsc_init; | ||
291 | } | 285 | } |
292 | } | 286 | } |
293 | 287 | ||