diff options
author | Alexey Starikovskiy <astarikovskiy@suse.de> | 2008-03-20 07:55:02 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-17 11:40:59 -0400 |
commit | c0a282c251181aa423d4831719613b8286b5b839 (patch) | |
tree | 8083d4d0e0b28a1640c5d640cc69e5e33596e0a1 /arch | |
parent | 9e0a2de2684372f16130b753efdbf226a997efb0 (diff) |
x86: make mp_bus_id_to_type optional
[ mingo@elte.hu: fix boot regression. ]
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/io_apic_32.c | 4 | ||||
-rw-r--r-- | arch/x86/kernel/mpparse_32.c | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/arch/x86/kernel/io_apic_32.c b/arch/x86/kernel/io_apic_32.c index 97ac6104d63a..0d70acd3b134 100644 --- a/arch/x86/kernel/io_apic_32.c +++ b/arch/x86/kernel/io_apic_32.c | |||
@@ -915,6 +915,7 @@ void __init setup_ioapic_dest(void) | |||
915 | } | 915 | } |
916 | #endif | 916 | #endif |
917 | 917 | ||
918 | #if defined(CONFIG_EISA) || defined(CONFIG_MCA) | ||
918 | /* | 919 | /* |
919 | * EISA Edge/Level control register, ELCR | 920 | * EISA Edge/Level control register, ELCR |
920 | */ | 921 | */ |
@@ -928,6 +929,7 @@ static int EISA_ELCR(unsigned int irq) | |||
928 | "Broken MPtable reports ISA irq %d\n", irq); | 929 | "Broken MPtable reports ISA irq %d\n", irq); |
929 | return 0; | 930 | return 0; |
930 | } | 931 | } |
932 | #endif | ||
931 | 933 | ||
932 | /* ISA interrupts are always polarity zero edge triggered, | 934 | /* ISA interrupts are always polarity zero edge triggered, |
933 | * when listed as conforming in the MP table. */ | 935 | * when listed as conforming in the MP table. */ |
@@ -1013,6 +1015,7 @@ static int MPBIOS_trigger(int idx) | |||
1013 | trigger = test_bit(bus, mp_bus_not_pci)? | 1015 | trigger = test_bit(bus, mp_bus_not_pci)? |
1014 | default_ISA_trigger(idx): | 1016 | default_ISA_trigger(idx): |
1015 | default_PCI_trigger(idx); | 1017 | default_PCI_trigger(idx); |
1018 | #if defined(CONFIG_EISA) || defined(CONFIG_MCA) | ||
1016 | switch (mp_bus_id_to_type[bus]) | 1019 | switch (mp_bus_id_to_type[bus]) |
1017 | { | 1020 | { |
1018 | case MP_BUS_ISA: /* ISA pin */ | 1021 | case MP_BUS_ISA: /* ISA pin */ |
@@ -1042,6 +1045,7 @@ static int MPBIOS_trigger(int idx) | |||
1042 | break; | 1045 | break; |
1043 | } | 1046 | } |
1044 | } | 1047 | } |
1048 | #endif | ||
1045 | break; | 1049 | break; |
1046 | } | 1050 | } |
1047 | case 1: /* edge */ | 1051 | case 1: /* edge */ |
diff --git a/arch/x86/kernel/mpparse_32.c b/arch/x86/kernel/mpparse_32.c index 13adcc40a00e..8795122db9bc 100644 --- a/arch/x86/kernel/mpparse_32.c +++ b/arch/x86/kernel/mpparse_32.c | |||
@@ -42,7 +42,9 @@ unsigned int __cpuinitdata maxcpus = NR_CPUS; | |||
42 | * MP-table. | 42 | * MP-table. |
43 | */ | 43 | */ |
44 | int apic_version [MAX_APICS]; | 44 | int apic_version [MAX_APICS]; |
45 | #if defined (CONFIG_MCA) || defined (CONFIG_EISA) | ||
45 | int mp_bus_id_to_type [MAX_MP_BUSSES]; | 46 | int mp_bus_id_to_type [MAX_MP_BUSSES]; |
47 | #endif | ||
46 | DECLARE_BITMAP(mp_bus_not_pci, MAX_MP_BUSSES); | 48 | DECLARE_BITMAP(mp_bus_not_pci, MAX_MP_BUSSES); |
47 | int mp_bus_id_to_node [MAX_MP_BUSSES]; | 49 | int mp_bus_id_to_node [MAX_MP_BUSSES]; |
48 | int mp_bus_id_to_local [MAX_MP_BUSSES]; | 50 | int mp_bus_id_to_local [MAX_MP_BUSSES]; |
@@ -245,9 +247,10 @@ static void __init MP_bus_info (struct mpc_config_bus *m) | |||
245 | if (strncmp(str, BUSTYPE_PCI, sizeof(BUSTYPE_PCI)-1) == 0) { | 247 | if (strncmp(str, BUSTYPE_PCI, sizeof(BUSTYPE_PCI)-1) == 0) { |
246 | mpc_oem_pci_bus(m, translation_table[mpc_record]); | 248 | mpc_oem_pci_bus(m, translation_table[mpc_record]); |
247 | clear_bit(m->mpc_busid, mp_bus_not_pci); | 249 | clear_bit(m->mpc_busid, mp_bus_not_pci); |
248 | mp_bus_id_to_type[m->mpc_busid] = MP_BUS_PCI; | ||
249 | mp_bus_id_to_pci_bus[m->mpc_busid] = mp_current_pci_id; | 250 | mp_bus_id_to_pci_bus[m->mpc_busid] = mp_current_pci_id; |
250 | mp_current_pci_id++; | 251 | mp_current_pci_id++; |
252 | #if defined(CONFIG_EISA) || defined (CONFIG_MCA) | ||
253 | mp_bus_id_to_type[m->mpc_busid] = MP_BUS_PCI; | ||
251 | } else if (strncmp(str, BUSTYPE_ISA, sizeof(BUSTYPE_ISA)-1) == 0) { | 254 | } else if (strncmp(str, BUSTYPE_ISA, sizeof(BUSTYPE_ISA)-1) == 0) { |
252 | mp_bus_id_to_type[m->mpc_busid] = MP_BUS_ISA; | 255 | mp_bus_id_to_type[m->mpc_busid] = MP_BUS_ISA; |
253 | } else if (strncmp(str, BUSTYPE_EISA, sizeof(BUSTYPE_EISA)-1) == 0) { | 256 | } else if (strncmp(str, BUSTYPE_EISA, sizeof(BUSTYPE_EISA)-1) == 0) { |
@@ -256,6 +259,7 @@ static void __init MP_bus_info (struct mpc_config_bus *m) | |||
256 | mp_bus_id_to_type[m->mpc_busid] = MP_BUS_MCA; | 259 | mp_bus_id_to_type[m->mpc_busid] = MP_BUS_MCA; |
257 | } else { | 260 | } else { |
258 | printk(KERN_WARNING "Unknown bustype %s - ignoring\n", str); | 261 | printk(KERN_WARNING "Unknown bustype %s - ignoring\n", str); |
262 | #endif | ||
259 | } | 263 | } |
260 | } | 264 | } |
261 | 265 | ||
@@ -983,10 +987,12 @@ void __init mp_config_acpi_legacy_irqs (void) | |||
983 | int i = 0; | 987 | int i = 0; |
984 | int ioapic = -1; | 988 | int ioapic = -1; |
985 | 989 | ||
990 | #if defined (CONFIG_MCA) || defined (CONFIG_EISA) | ||
986 | /* | 991 | /* |
987 | * Fabricate the legacy ISA bus (bus #31). | 992 | * Fabricate the legacy ISA bus (bus #31). |
988 | */ | 993 | */ |
989 | mp_bus_id_to_type[MP_ISA_BUS] = MP_BUS_ISA; | 994 | mp_bus_id_to_type[MP_ISA_BUS] = MP_BUS_ISA; |
995 | #endif | ||
990 | set_bit(MP_ISA_BUS, mp_bus_not_pci); | 996 | set_bit(MP_ISA_BUS, mp_bus_not_pci); |
991 | Dprintk("Bus #%d is ISA\n", MP_ISA_BUS); | 997 | Dprintk("Bus #%d is ISA\n", MP_ISA_BUS); |
992 | 998 | ||