aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/include/asm/mpspec.h6
-rw-r--r--arch/x86/include/asm/setup.h3
-rw-r--r--arch/x86/include/asm/x86_init.h2
-rw-r--r--arch/x86/kernel/apic/numaq_32.c2
-rw-r--r--arch/x86/kernel/mpparse.c14
-rw-r--r--arch/x86/kernel/x86_init.c1
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);
64extern int enable_update_mptable; 64extern int enable_update_mptable;
65extern int default_mpc_apic_id(struct mpc_cpu *m); 65extern int default_mpc_apic_id(struct mpc_cpu *m);
66extern void default_smp_read_mpc_oem(struct mpc_table *mpc); 66extern void default_smp_read_mpc_oem(struct mpc_table *mpc);
67# ifdef CONFIG_X86_IO_APIC
68extern 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
68static inline void find_smp_config(void) { } 73static inline void find_smp_config(void) { }
69static inline void early_reserve_e820_mpc_new(void) { } 74static 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
75void __cpuinit generic_processor_info(int apicid, int version); 81void __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 */
15struct mpc_bus;
16 15
17struct x86_quirks { 16struct 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
29extern void x86_quirk_intr_init(void); 26extern 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 */
16struct x86_init_mpparse { 17struct 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
276static __init void early_check_numaq(void) 275static __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
75static void __init MP_bus_info(struct mpc_bus *m) 75void __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
82static 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};