aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2009-08-19 09:37:03 -0400
committerThomas Gleixner <tglx@linutronix.de>2009-08-31 03:35:46 -0400
commit845b3944bbdf9e9247849bf037f27ff3a3f26d87 (patch)
treeb14b40b5ba650996c646ed760cfa4b3283e04953 /arch/x86/kernel/apic
parent736decac643e8982655e22ac7f0e5e61c5b7f9bd (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.c10
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
132static int __init numaq_pre_time_init(void) 132static void __init numaq_tsc_init(void)
133{ 133{
134 numaq_tsc_disable(); 134 numaq_tsc_disable();
135 return 0;
136} 135}
137 136
138static inline int generate_logical_apicid(int quad, int phys_apicid) 137static 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
265static struct x86_quirks numaq_x86_quirks __initdata = {
266 .arch_pre_time_init = numaq_pre_time_init,
267 .arch_time_init = NULL,
268};
269
270static __init void early_check_numaq(void) 264static __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