aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup.c
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/setup.c
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/setup.c')
-rw-r--r--arch/x86/kernel/setup.c43
1 files changed, 0 insertions, 43 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 43ec6aa175bd..bb207a47c631 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -626,10 +626,6 @@ static int __init setup_elfcorehdr(char *arg)
626early_param("elfcorehdr", setup_elfcorehdr); 626early_param("elfcorehdr", setup_elfcorehdr);
627#endif 627#endif
628 628
629static struct x86_quirks default_x86_quirks __initdata;
630
631struct x86_quirks *x86_quirks __initdata = &default_x86_quirks;
632
633#ifdef CONFIG_X86_RESERVE_LOW_64K 629#ifdef CONFIG_X86_RESERVE_LOW_64K
634static int __init dmi_low_memory_corruption(const struct dmi_system_id *d) 630static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
635{ 631{
@@ -1016,45 +1012,6 @@ void __init setup_arch(char **cmdline_p)
1016 1012
1017#ifdef CONFIG_X86_32 1013#ifdef CONFIG_X86_32
1018 1014
1019static struct irqaction irq0 = {
1020 .handler = timer_interrupt,
1021 .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_IRQPOLL | IRQF_TIMER,
1022 .name = "timer"
1023};
1024
1025/**
1026 * x86_quirk_pre_time_init - do any specific initialisations before.
1027 *
1028 **/
1029void __init x86_quirk_pre_time_init(void)
1030{
1031 if (x86_quirks->arch_pre_time_init)
1032 x86_quirks->arch_pre_time_init();
1033}
1034
1035/**
1036 * x86_quirk_time_init - do any specific initialisations for the system timer.
1037 *
1038 * Description:
1039 * Must plug the system timer interrupt source at HZ into the IRQ listed
1040 * in irq_vectors.h:TIMER_IRQ
1041 **/
1042void __init x86_quirk_time_init(void)
1043{
1044 if (x86_quirks->arch_time_init) {
1045 /*
1046 * A nonzero return code does not mean failure, it means
1047 * that the architecture quirk does not want any
1048 * generic (timer) setup to be performed after this:
1049 */
1050 if (x86_quirks->arch_time_init())
1051 return;
1052 }
1053
1054 irq0.mask = cpumask_of_cpu(0);
1055 setup_irq(0, &irq0);
1056}
1057
1058static struct resource video_ram_resource = { 1015static struct resource video_ram_resource = {
1059 .name = "Video RAM area", 1016 .name = "Video RAM area",
1060 .start = 0xa0000, 1017 .start = 0xa0000,