diff options
Diffstat (limited to 'arch/x86/kernel/genapic_64.c')
-rw-r--r-- | arch/x86/kernel/genapic_64.c | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/arch/x86/kernel/genapic_64.c b/arch/x86/kernel/genapic_64.c deleted file mode 100644 index 2bced78b0b8e..000000000000 --- a/arch/x86/kernel/genapic_64.c +++ /dev/null | |||
@@ -1,82 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2004 James Cleverdon, IBM. | ||
3 | * Subject to the GNU Public License, v.2 | ||
4 | * | ||
5 | * Generic APIC sub-arch probe layer. | ||
6 | * | ||
7 | * Hacked for x86-64 by James Cleverdon from i386 architecture code by | ||
8 | * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and | ||
9 | * James Cleverdon. | ||
10 | */ | ||
11 | #include <linux/threads.h> | ||
12 | #include <linux/cpumask.h> | ||
13 | #include <linux/string.h> | ||
14 | #include <linux/module.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/ctype.h> | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/hardirq.h> | ||
19 | #include <linux/dmar.h> | ||
20 | |||
21 | #include <asm/smp.h> | ||
22 | #include <asm/ipi.h> | ||
23 | #include <asm/genapic.h> | ||
24 | #include <asm/setup.h> | ||
25 | |||
26 | extern struct genapic apic_flat; | ||
27 | extern struct genapic apic_physflat; | ||
28 | extern struct genapic apic_x2xpic_uv_x; | ||
29 | extern struct genapic apic_x2apic_phys; | ||
30 | extern struct genapic apic_x2apic_cluster; | ||
31 | |||
32 | struct genapic __read_mostly *genapic = &apic_flat; | ||
33 | |||
34 | static struct genapic *apic_probe[] __initdata = { | ||
35 | &apic_x2apic_uv_x, | ||
36 | &apic_x2apic_phys, | ||
37 | &apic_x2apic_cluster, | ||
38 | &apic_physflat, | ||
39 | NULL, | ||
40 | }; | ||
41 | |||
42 | /* | ||
43 | * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode. | ||
44 | */ | ||
45 | void __init setup_apic_routing(void) | ||
46 | { | ||
47 | if (genapic == &apic_x2apic_phys || genapic == &apic_x2apic_cluster) { | ||
48 | if (!intr_remapping_enabled) | ||
49 | genapic = &apic_flat; | ||
50 | } | ||
51 | |||
52 | if (genapic == &apic_flat) { | ||
53 | if (max_physical_apicid >= 8) | ||
54 | genapic = &apic_physflat; | ||
55 | printk(KERN_INFO "Setting APIC routing to %s\n", genapic->name); | ||
56 | } | ||
57 | |||
58 | if (x86_quirks->update_genapic) | ||
59 | x86_quirks->update_genapic(); | ||
60 | } | ||
61 | |||
62 | /* Same for both flat and physical. */ | ||
63 | |||
64 | void apic_send_IPI_self(int vector) | ||
65 | { | ||
66 | __send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL); | ||
67 | } | ||
68 | |||
69 | int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) | ||
70 | { | ||
71 | int i; | ||
72 | |||
73 | for (i = 0; apic_probe[i]; ++i) { | ||
74 | if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) { | ||
75 | genapic = apic_probe[i]; | ||
76 | printk(KERN_INFO "Setting APIC routing to %s.\n", | ||
77 | genapic->name); | ||
78 | return 1; | ||
79 | } | ||
80 | } | ||
81 | return 0; | ||
82 | } | ||