aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAlexey Starikovskiy <astarikovskiy@suse.de>2008-03-20 07:55:02 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-17 11:40:59 -0400
commitc0a282c251181aa423d4831719613b8286b5b839 (patch)
tree8083d4d0e0b28a1640c5d640cc69e5e33596e0a1 /arch
parent9e0a2de2684372f16130b753efdbf226a997efb0 (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.c4
-rw-r--r--arch/x86/kernel/mpparse_32.c8
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 */
44int apic_version [MAX_APICS]; 44int apic_version [MAX_APICS];
45#if defined (CONFIG_MCA) || defined (CONFIG_EISA)
45int mp_bus_id_to_type [MAX_MP_BUSSES]; 46int mp_bus_id_to_type [MAX_MP_BUSSES];
47#endif
46DECLARE_BITMAP(mp_bus_not_pci, MAX_MP_BUSSES); 48DECLARE_BITMAP(mp_bus_not_pci, MAX_MP_BUSSES);
47int mp_bus_id_to_node [MAX_MP_BUSSES]; 49int mp_bus_id_to_node [MAX_MP_BUSSES];
48int mp_bus_id_to_local [MAX_MP_BUSSES]; 50int 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