diff options
-rw-r--r-- | arch/x86/include/asm/mpspec.h | 6 | ||||
-rw-r--r-- | arch/x86/include/asm/setup.h | 3 | ||||
-rw-r--r-- | arch/x86/include/asm/x86_init.h | 2 | ||||
-rw-r--r-- | arch/x86/kernel/apic/numaq_32.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/mpparse.c | 14 | ||||
-rw-r--r-- | arch/x86/kernel/x86_init.c | 1 |
6 files changed, 18 insertions, 10 deletions
diff --git a/arch/x86/include/asm/mpspec.h b/arch/x86/include/asm/mpspec.h index 5de8e92be2dc..e3c579efde7a 100644 --- a/arch/x86/include/asm/mpspec.h +++ b/arch/x86/include/asm/mpspec.h | |||
@@ -64,12 +64,18 @@ extern void early_reserve_e820_mpc_new(void); | |||
64 | extern int enable_update_mptable; | 64 | extern int enable_update_mptable; |
65 | extern int default_mpc_apic_id(struct mpc_cpu *m); | 65 | extern int default_mpc_apic_id(struct mpc_cpu *m); |
66 | extern void default_smp_read_mpc_oem(struct mpc_table *mpc); | 66 | extern void default_smp_read_mpc_oem(struct mpc_table *mpc); |
67 | # ifdef CONFIG_X86_IO_APIC | ||
68 | extern void default_mpc_oem_bus_info(struct mpc_bus *m, char *str); | ||
69 | # else | ||
70 | # define default_mpc_oem_bus_info NULL | ||
71 | # endif | ||
67 | #else | 72 | #else |
68 | static inline void find_smp_config(void) { } | 73 | static inline void find_smp_config(void) { } |
69 | static inline void early_reserve_e820_mpc_new(void) { } | 74 | static inline void early_reserve_e820_mpc_new(void) { } |
70 | #define enable_update_mptable 0 | 75 | #define enable_update_mptable 0 |
71 | #define default_mpc_apic_id NULL | 76 | #define default_mpc_apic_id NULL |
72 | #define default_smp_read_mpc_oem NULL | 77 | #define default_smp_read_mpc_oem NULL |
78 | #define default_mpc_oem_bus_info NULL | ||
73 | #endif | 79 | #endif |
74 | 80 | ||
75 | void __cpuinit generic_processor_info(int apicid, int version); | 81 | void __cpuinit generic_processor_info(int apicid, int version); |
diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h index fd2267baba1d..6121a8ac7b06 100644 --- a/arch/x86/include/asm/setup.h +++ b/arch/x86/include/asm/setup.h | |||
@@ -12,7 +12,6 @@ | |||
12 | /* | 12 | /* |
13 | * Any setup quirks to be performed? | 13 | * Any setup quirks to be performed? |
14 | */ | 14 | */ |
15 | struct mpc_bus; | ||
16 | 15 | ||
17 | struct x86_quirks { | 16 | struct x86_quirks { |
18 | int (*arch_pre_time_init)(void); | 17 | int (*arch_pre_time_init)(void); |
@@ -22,8 +21,6 @@ struct x86_quirks { | |||
22 | int (*arch_trap_init)(void); | 21 | int (*arch_trap_init)(void); |
23 | int (*mach_get_smp_config)(unsigned int early); | 22 | int (*mach_get_smp_config)(unsigned int early); |
24 | int (*mach_find_smp_config)(unsigned int reserve); | 23 | int (*mach_find_smp_config)(unsigned int reserve); |
25 | |||
26 | void (*mpc_oem_bus_info)(struct mpc_bus *m, char *name); | ||
27 | }; | 24 | }; |
28 | 25 | ||
29 | extern void x86_quirk_intr_init(void); | 26 | extern void x86_quirk_intr_init(void); |
diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h index 404e2d2b06d3..2833a873a903 100644 --- a/arch/x86/include/asm/x86_init.h +++ b/arch/x86/include/asm/x86_init.h | |||
@@ -12,6 +12,7 @@ struct mpc_table; | |||
12 | * @mpc_apic_id: platform specific mpc apic id assignment | 12 | * @mpc_apic_id: platform specific mpc apic id assignment |
13 | * @smp_read_mpc_oem: platform specific oem mpc table setup | 13 | * @smp_read_mpc_oem: platform specific oem mpc table setup |
14 | * @mpc_oem_pci_bus: platform specific pci bus setup (default NULL) | 14 | * @mpc_oem_pci_bus: platform specific pci bus setup (default NULL) |
15 | * @mpc_oem_bus_info: platform specific mpc bus info | ||
15 | */ | 16 | */ |
16 | struct x86_init_mpparse { | 17 | struct x86_init_mpparse { |
17 | void (*mpc_record)(unsigned int mode); | 18 | void (*mpc_record)(unsigned int mode); |
@@ -19,6 +20,7 @@ struct x86_init_mpparse { | |||
19 | int (*mpc_apic_id)(struct mpc_cpu *m); | 20 | int (*mpc_apic_id)(struct mpc_cpu *m); |
20 | void (*smp_read_mpc_oem)(struct mpc_table *mpc); | 21 | void (*smp_read_mpc_oem)(struct mpc_table *mpc); |
21 | void (*mpc_oem_pci_bus)(struct mpc_bus *m); | 22 | void (*mpc_oem_pci_bus)(struct mpc_bus *m); |
23 | void (*mpc_oem_bus_info)(struct mpc_bus *m, char *name); | ||
22 | }; | 24 | }; |
23 | 25 | ||
24 | /** | 26 | /** |
diff --git a/arch/x86/kernel/apic/numaq_32.c b/arch/x86/kernel/apic/numaq_32.c index feebe8eed7dd..700273dca684 100644 --- a/arch/x86/kernel/apic/numaq_32.c +++ b/arch/x86/kernel/apic/numaq_32.c | |||
@@ -270,7 +270,6 @@ static struct x86_quirks numaq_x86_quirks __initdata = { | |||
270 | .arch_trap_init = NULL, | 270 | .arch_trap_init = NULL, |
271 | .mach_get_smp_config = NULL, | 271 | .mach_get_smp_config = NULL, |
272 | .mach_find_smp_config = NULL, | 272 | .mach_find_smp_config = NULL, |
273 | .mpc_oem_bus_info = mpc_oem_bus_info, | ||
274 | }; | 273 | }; |
275 | 274 | ||
276 | static __init void early_check_numaq(void) | 275 | static __init void early_check_numaq(void) |
@@ -293,6 +292,7 @@ static __init void early_check_numaq(void) | |||
293 | x86_init.mpparse.mpc_apic_id = mpc_apic_id; | 292 | x86_init.mpparse.mpc_apic_id = mpc_apic_id; |
294 | x86_init.mpparse.smp_read_mpc_oem = smp_read_mpc_oem; | 293 | x86_init.mpparse.smp_read_mpc_oem = smp_read_mpc_oem; |
295 | x86_init.mpparse.mpc_oem_pci_bus = mpc_oem_pci_bus; | 294 | x86_init.mpparse.mpc_oem_pci_bus = mpc_oem_pci_bus; |
295 | x86_init.mpparse.mpc_oem_bus_info = mpc_oem_bus_info; | ||
296 | } | 296 | } |
297 | } | 297 | } |
298 | 298 | ||
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c index 72e1140723cf..a42f23f1dc7e 100644 --- a/arch/x86/kernel/mpparse.c +++ b/arch/x86/kernel/mpparse.c | |||
@@ -72,16 +72,18 @@ static void __init MP_processor_info(struct mpc_cpu *m) | |||
72 | } | 72 | } |
73 | 73 | ||
74 | #ifdef CONFIG_X86_IO_APIC | 74 | #ifdef CONFIG_X86_IO_APIC |
75 | static void __init MP_bus_info(struct mpc_bus *m) | 75 | void __init default_mpc_oem_bus_info(struct mpc_bus *m, char *str) |
76 | { | 76 | { |
77 | char str[7]; | ||
78 | memcpy(str, m->bustype, 6); | 77 | memcpy(str, m->bustype, 6); |
79 | str[6] = 0; | 78 | str[6] = 0; |
79 | apic_printk(APIC_VERBOSE, "Bus #%d is %s\n", m->busid, str); | ||
80 | } | ||
81 | |||
82 | static void __init MP_bus_info(struct mpc_bus *m) | ||
83 | { | ||
84 | char str[7]; | ||
80 | 85 | ||
81 | if (x86_quirks->mpc_oem_bus_info) | 86 | x86_init.mpparse.mpc_oem_bus_info(m, str); |
82 | x86_quirks->mpc_oem_bus_info(m, str); | ||
83 | else | ||
84 | apic_printk(APIC_VERBOSE, "Bus #%d is %s\n", m->busid, str); | ||
85 | 87 | ||
86 | #if MAX_MP_BUSSES < 256 | 88 | #if MAX_MP_BUSSES < 256 |
87 | if (m->busid >= MAX_MP_BUSSES) { | 89 | if (m->busid >= MAX_MP_BUSSES) { |
diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c index fb5d93c077d8..27685edc5460 100644 --- a/arch/x86/kernel/x86_init.c +++ b/arch/x86/kernel/x86_init.c | |||
@@ -31,5 +31,6 @@ struct __initdata x86_init_ops x86_init = { | |||
31 | .setup_ioapic_ids = x86_init_noop, | 31 | .setup_ioapic_ids = x86_init_noop, |
32 | .mpc_apic_id = default_mpc_apic_id, | 32 | .mpc_apic_id = default_mpc_apic_id, |
33 | .smp_read_mpc_oem = default_smp_read_mpc_oem, | 33 | .smp_read_mpc_oem = default_smp_read_mpc_oem, |
34 | .mpc_oem_bus_info = default_mpc_oem_bus_info, | ||
34 | }, | 35 | }, |
35 | }; | 36 | }; |