x86: unify mp_config_acpi_legacy_irqs
authorAlexey Starikovskiy <astarikovskiy@suse.de>
Fri, 4 Apr 2008 19:43:06 +0000 (23:43 +0400)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Apr 2008 15:41:36 +0000 (17:41 +0200)
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/mpparse_64.c

index 5f1f7fdcd627d8975b2d3479e926275842449168..8ad365136a6b8ed938c1de8a3ed9a3601055be41 100644 (file)
@@ -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.
         */