diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-01-28 13:04:37 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-29 08:16:47 -0500 |
commit | b3daa3a1a56cf09fb91773f3658692fd02d08bb1 (patch) | |
tree | 49c40bdeaafbef38680976ce19409ded853ddb5a /arch/x86/mach-generic | |
parent | 61b90b7ca10cc65d8b850ab542859dc593e5a381 (diff) |
x86, bigsmp: consolidate code
Move all code to arch/x86/kernel/bigsmp_32.c.
With this it ceases to rely on any build-time subarch features.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/mach-generic')
-rw-r--r-- | arch/x86/mach-generic/Makefile | 1 | ||||
-rw-r--r-- | arch/x86/mach-generic/bigsmp.c | 113 |
2 files changed, 0 insertions, 114 deletions
diff --git a/arch/x86/mach-generic/Makefile b/arch/x86/mach-generic/Makefile index 4ede08d309e6..05e4a7ca7742 100644 --- a/arch/x86/mach-generic/Makefile +++ b/arch/x86/mach-generic/Makefile | |||
@@ -5,4 +5,3 @@ | |||
5 | EXTRA_CFLAGS := -Iarch/x86/kernel | 5 | EXTRA_CFLAGS := -Iarch/x86/kernel |
6 | 6 | ||
7 | obj-y := probe.o default.o | 7 | obj-y := probe.o default.o |
8 | obj-$(CONFIG_X86_BIGSMP) += bigsmp.o | ||
diff --git a/arch/x86/mach-generic/bigsmp.c b/arch/x86/mach-generic/bigsmp.c deleted file mode 100644 index 626f45ca4e7e..000000000000 --- a/arch/x86/mach-generic/bigsmp.c +++ /dev/null | |||
@@ -1,113 +0,0 @@ | |||
1 | /* | ||
2 | * APIC driver for "bigsmp" XAPIC machines with more than 8 virtual CPUs. | ||
3 | * Drives the local APIC in "clustered mode". | ||
4 | */ | ||
5 | #define APIC_DEFINITION 1 | ||
6 | #include <linux/threads.h> | ||
7 | #include <linux/cpumask.h> | ||
8 | #include <asm/mpspec.h> | ||
9 | #include <asm/genapic.h> | ||
10 | #include <asm/fixmap.h> | ||
11 | #include <asm/apicdef.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/dmi.h> | ||
15 | #include <asm/bigsmp/apicdef.h> | ||
16 | #include <linux/smp.h> | ||
17 | #include <asm/bigsmp/apic.h> | ||
18 | #include <asm/bigsmp/ipi.h> | ||
19 | |||
20 | static int dmi_bigsmp; /* can be set by dmi scanners */ | ||
21 | |||
22 | static int hp_ht_bigsmp(const struct dmi_system_id *d) | ||
23 | { | ||
24 | printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident); | ||
25 | dmi_bigsmp = 1; | ||
26 | return 0; | ||
27 | } | ||
28 | |||
29 | |||
30 | static const struct dmi_system_id bigsmp_dmi_table[] = { | ||
31 | { hp_ht_bigsmp, "HP ProLiant DL760 G2", | ||
32 | { DMI_MATCH(DMI_BIOS_VENDOR, "HP"), | ||
33 | DMI_MATCH(DMI_BIOS_VERSION, "P44-"),} | ||
34 | }, | ||
35 | |||
36 | { hp_ht_bigsmp, "HP ProLiant DL740", | ||
37 | { DMI_MATCH(DMI_BIOS_VENDOR, "HP"), | ||
38 | DMI_MATCH(DMI_BIOS_VERSION, "P47-"),} | ||
39 | }, | ||
40 | { } | ||
41 | }; | ||
42 | |||
43 | static void bigsmp_vector_allocation_domain(int cpu, cpumask_t *retmask) | ||
44 | { | ||
45 | cpus_clear(*retmask); | ||
46 | cpu_set(cpu, *retmask); | ||
47 | } | ||
48 | |||
49 | static int probe_bigsmp(void) | ||
50 | { | ||
51 | if (def_to_bigsmp) | ||
52 | dmi_bigsmp = 1; | ||
53 | else | ||
54 | dmi_check_system(bigsmp_dmi_table); | ||
55 | return dmi_bigsmp; | ||
56 | } | ||
57 | |||
58 | struct genapic apic_bigsmp = { | ||
59 | |||
60 | .name = "bigsmp", | ||
61 | .probe = probe_bigsmp, | ||
62 | .acpi_madt_oem_check = NULL, | ||
63 | .apic_id_registered = bigsmp_apic_id_registered, | ||
64 | |||
65 | .irq_delivery_mode = dest_Fixed, | ||
66 | /* phys delivery to target CPU: */ | ||
67 | .irq_dest_mode = 0, | ||
68 | |||
69 | .target_cpus = bigsmp_target_cpus, | ||
70 | .disable_esr = 1, | ||
71 | .dest_logical = 0, | ||
72 | .check_apicid_used = bigsmp_check_apicid_used, | ||
73 | .check_apicid_present = bigsmp_check_apicid_present, | ||
74 | |||
75 | .vector_allocation_domain = bigsmp_vector_allocation_domain, | ||
76 | .init_apic_ldr = bigsmp_init_apic_ldr, | ||
77 | |||
78 | .ioapic_phys_id_map = bigsmp_ioapic_phys_id_map, | ||
79 | .setup_apic_routing = bigsmp_setup_apic_routing, | ||
80 | .multi_timer_check = NULL, | ||
81 | .apicid_to_node = bigsmp_apicid_to_node, | ||
82 | .cpu_to_logical_apicid = bigsmp_cpu_to_logical_apicid, | ||
83 | .cpu_present_to_apicid = bigsmp_cpu_present_to_apicid, | ||
84 | .apicid_to_cpu_present = bigsmp_apicid_to_cpu_present, | ||
85 | .setup_portio_remap = NULL, | ||
86 | .check_phys_apicid_present = bigsmp_check_phys_apicid_present, | ||
87 | .enable_apic_mode = NULL, | ||
88 | .phys_pkg_id = bigsmp_phys_pkg_id, | ||
89 | .mps_oem_check = NULL, | ||
90 | |||
91 | .get_apic_id = bigsmp_get_apic_id, | ||
92 | .set_apic_id = NULL, | ||
93 | .apic_id_mask = 0xFF << 24, | ||
94 | |||
95 | .cpu_mask_to_apicid = bigsmp_cpu_mask_to_apicid, | ||
96 | .cpu_mask_to_apicid_and = bigsmp_cpu_mask_to_apicid_and, | ||
97 | |||
98 | .send_IPI_mask = default_send_IPI_mask, | ||
99 | .send_IPI_mask_allbutself = NULL, | ||
100 | .send_IPI_allbutself = bigsmp_send_IPI_allbutself, | ||
101 | .send_IPI_all = bigsmp_send_IPI_all, | ||
102 | .send_IPI_self = NULL, | ||
103 | |||
104 | .wakeup_cpu = NULL, | ||
105 | .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, | ||
106 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | ||
107 | |||
108 | .wait_for_init_deassert = default_wait_for_init_deassert, | ||
109 | |||
110 | .smp_callin_clear_local_apic = NULL, | ||
111 | .store_NMI_vector = NULL, | ||
112 | .inquire_remote_apic = default_inquire_remote_apic, | ||
113 | }; | ||