summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Starikovskiy <astarikovskiy@suse.de>2008-04-04 23:43:06 +0400
committerIngo Molnar <mingo@elte.hu>2008-04-17 17:41:36 +0200
commitc769bfee5731f2614983bd7a9079eb90514e4b9f (patch)
treeafd90b8d09fa5ba50ca4484edf1619f68526a4a6
parent57b733e902f179dc453609db6334f8e9801cbb7a (diff)
downloadlwn-c769bfee5731f2614983bd7a9079eb90514e4b9f.tar.gz
lwn-c769bfee5731f2614983bd7a9079eb90514e4b9f.zip
x86: unify mp_config_acpi_legacy_irqs
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/kernel/mpparse_64.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/arch/x86/kernel/mpparse_64.c b/arch/x86/kernel/mpparse_64.c
index 5f1f7fdcd627..8ad365136a6b 100644
--- a/arch/x86/kernel/mpparse_64.c
+++ b/arch/x86/kernel/mpparse_64.c
@@ -804,19 +804,31 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
panic("Max # of irq sources exceeded!\n");
}
+int es7000_plat;
+
void __init mp_config_acpi_legacy_irqs(void)
{
struct mpc_config_intsrc intsrc;
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);
- /*
- * Locate the IOAPIC that manages the ISA IRQs (0-15).
+ /*
+ * Older generations of ES7000 have no legacy identity mappings
+ */
+ if (es7000_plat == 1)
+ return;
+
+ /*
+ * Locate the IOAPIC that manages the ISA IRQs (0-15).
*/
ioapic = mp_find_ioapic(0);
if (ioapic < 0)
@@ -827,7 +839,7 @@ void __init mp_config_acpi_legacy_irqs(void)
intsrc.mpc_srcbus = MP_ISA_BUS;
intsrc.mpc_dstapic = mp_ioapics[ioapic].mpc_apicid;
- /*
+ /*
* Use the default configuration for the IRQs 0-15. Unless
* overridden by (MADT) interrupt source override entries.
*/