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>
This commit is contained in:
parent
9e0a2de268
commit
c0a282c251
3 changed files with 16 additions and 2 deletions
|
@ -915,6 +915,7 @@ void __init setup_ioapic_dest(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_EISA) || defined(CONFIG_MCA)
|
||||
/*
|
||||
* EISA Edge/Level control register, ELCR
|
||||
*/
|
||||
|
@ -928,6 +929,7 @@ static int EISA_ELCR(unsigned int irq)
|
|||
"Broken MPtable reports ISA irq %d\n", irq);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* ISA interrupts are always polarity zero edge triggered,
|
||||
* when listed as conforming in the MP table. */
|
||||
|
@ -1013,6 +1015,7 @@ static int MPBIOS_trigger(int idx)
|
|||
trigger = test_bit(bus, mp_bus_not_pci)?
|
||||
default_ISA_trigger(idx):
|
||||
default_PCI_trigger(idx);
|
||||
#if defined(CONFIG_EISA) || defined(CONFIG_MCA)
|
||||
switch (mp_bus_id_to_type[bus])
|
||||
{
|
||||
case MP_BUS_ISA: /* ISA pin */
|
||||
|
@ -1042,6 +1045,7 @@ static int MPBIOS_trigger(int idx)
|
|||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
case 1: /* edge */
|
||||
|
|
|
@ -42,7 +42,9 @@ unsigned int __cpuinitdata maxcpus = NR_CPUS;
|
|||
* MP-table.
|
||||
*/
|
||||
int apic_version [MAX_APICS];
|
||||
#if defined (CONFIG_MCA) || defined (CONFIG_EISA)
|
||||
int mp_bus_id_to_type [MAX_MP_BUSSES];
|
||||
#endif
|
||||
DECLARE_BITMAP(mp_bus_not_pci, MAX_MP_BUSSES);
|
||||
int mp_bus_id_to_node [MAX_MP_BUSSES];
|
||||
int mp_bus_id_to_local [MAX_MP_BUSSES];
|
||||
|
@ -245,9 +247,10 @@ static void __init MP_bus_info (struct mpc_config_bus *m)
|
|||
if (strncmp(str, BUSTYPE_PCI, sizeof(BUSTYPE_PCI)-1) == 0) {
|
||||
mpc_oem_pci_bus(m, translation_table[mpc_record]);
|
||||
clear_bit(m->mpc_busid, mp_bus_not_pci);
|
||||
mp_bus_id_to_type[m->mpc_busid] = MP_BUS_PCI;
|
||||
mp_bus_id_to_pci_bus[m->mpc_busid] = mp_current_pci_id;
|
||||
mp_current_pci_id++;
|
||||
#if defined(CONFIG_EISA) || defined (CONFIG_MCA)
|
||||
mp_bus_id_to_type[m->mpc_busid] = MP_BUS_PCI;
|
||||
} else if (strncmp(str, BUSTYPE_ISA, sizeof(BUSTYPE_ISA)-1) == 0) {
|
||||
mp_bus_id_to_type[m->mpc_busid] = MP_BUS_ISA;
|
||||
} 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)
|
|||
mp_bus_id_to_type[m->mpc_busid] = MP_BUS_MCA;
|
||||
} else {
|
||||
printk(KERN_WARNING "Unknown bustype %s - ignoring\n", str);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -983,10 +987,12 @@ void __init mp_config_acpi_legacy_irqs (void)
|
|||
int i = 0;
|
||||
int ioapic = -1;
|
||||
|
||||
#if defined (CONFIG_MCA) || defined (CONFIG_EISA)
|
||||
/*
|
||||
* Fabricate the legacy ISA bus (bus #31).
|
||||
*/
|
||||
mp_bus_id_to_type[MP_ISA_BUS] = MP_BUS_ISA;
|
||||
#endif
|
||||
set_bit(MP_ISA_BUS, mp_bus_not_pci);
|
||||
Dprintk("Bus #%d is ISA\n", MP_ISA_BUS);
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
#ifdef CONFIG_X86_32
|
||||
#include <mach_mpspec.h>
|
||||
|
||||
extern int mp_bus_id_to_type[MAX_MP_BUSSES];
|
||||
extern int mp_bus_id_to_node[MAX_MP_BUSSES];
|
||||
extern int mp_bus_id_to_local[MAX_MP_BUSSES];
|
||||
|
||||
|
@ -28,7 +27,12 @@ extern void early_get_smp_config(void);
|
|||
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MCA) || defined(CONFIG_EISA)
|
||||
extern int mp_bus_id_to_type[MAX_MP_BUSSES];
|
||||
#endif
|
||||
|
||||
extern DECLARE_BITMAP(mp_bus_not_pci, MAX_MP_BUSSES);
|
||||
|
||||
extern int mp_bus_id_to_pci_bus[MAX_MP_BUSSES];
|
||||
|
||||
extern unsigned int boot_cpu_physical_apicid;
|
||||
|
|
Reference in a new issue