Commit e5099134 authored by Andi Kleen's avatar Andi Kleen Committed by Andi Kleen

[PATCH] Remove leftover MCE/EISA support

No 64bit EISA or Microchannel systems ever. Remove the left over code
in the IO-APIC driver and the mptable parser
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
parent 5cb6b999
...@@ -389,9 +389,7 @@ static int __init find_isa_irq_pin(int irq, int type) ...@@ -389,9 +389,7 @@ static int __init find_isa_irq_pin(int irq, int type)
for (i = 0; i < mp_irq_entries; i++) { for (i = 0; i < mp_irq_entries; i++) {
int lbus = mp_irqs[i].mpc_srcbus; int lbus = mp_irqs[i].mpc_srcbus;
if ((mp_bus_id_to_type[lbus] == MP_BUS_ISA || if (mp_bus_id_to_type[lbus] == MP_BUS_ISA &&
mp_bus_id_to_type[lbus] == MP_BUS_EISA ||
mp_bus_id_to_type[lbus] == MP_BUS_MCA) &&
(mp_irqs[i].mpc_irqtype == type) && (mp_irqs[i].mpc_irqtype == type) &&
(mp_irqs[i].mpc_srcbusirq == irq)) (mp_irqs[i].mpc_srcbusirq == irq))
...@@ -407,9 +405,7 @@ static int __init find_isa_irq_apic(int irq, int type) ...@@ -407,9 +405,7 @@ static int __init find_isa_irq_apic(int irq, int type)
for (i = 0; i < mp_irq_entries; i++) { for (i = 0; i < mp_irq_entries; i++) {
int lbus = mp_irqs[i].mpc_srcbus; int lbus = mp_irqs[i].mpc_srcbus;
if ((mp_bus_id_to_type[lbus] == MP_BUS_ISA || if ((mp_bus_id_to_type[lbus] == MP_BUS_ISA) &&
mp_bus_id_to_type[lbus] == MP_BUS_EISA ||
mp_bus_id_to_type[lbus] == MP_BUS_MCA) &&
(mp_irqs[i].mpc_irqtype == type) && (mp_irqs[i].mpc_irqtype == type) &&
(mp_irqs[i].mpc_srcbusirq == irq)) (mp_irqs[i].mpc_srcbusirq == irq))
break; break;
...@@ -472,27 +468,6 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin) ...@@ -472,27 +468,6 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin)
return best_guess; return best_guess;
} }
/*
* EISA Edge/Level control register, ELCR
*/
static int EISA_ELCR(unsigned int irq)
{
if (irq < 16) {
unsigned int port = 0x4d0 + (irq >> 3);
return (inb(port) >> (irq & 7)) & 1;
}
apic_printk(APIC_VERBOSE, "Broken MPtable reports ISA irq %d\n", irq);
return 0;
}
/* EISA interrupts are always polarity zero and can be edge or level
* trigger depending on the ELCR value. If an interrupt is listed as
* EISA conforming in the MP table, that means its trigger type must
* be read in from the ELCR */
#define default_EISA_trigger(idx) (EISA_ELCR(mp_irqs[idx].mpc_srcbusirq))
#define default_EISA_polarity(idx) (0)
/* ISA interrupts are always polarity zero edge triggered, /* ISA interrupts are always polarity zero edge triggered,
* when listed as conforming in the MP table. */ * when listed as conforming in the MP table. */
...@@ -505,12 +480,6 @@ static int EISA_ELCR(unsigned int irq) ...@@ -505,12 +480,6 @@ static int EISA_ELCR(unsigned int irq)
#define default_PCI_trigger(idx) (1) #define default_PCI_trigger(idx) (1)
#define default_PCI_polarity(idx) (1) #define default_PCI_polarity(idx) (1)
/* MCA interrupts are always polarity zero level triggered,
* when listed as conforming in the MP table. */
#define default_MCA_trigger(idx) (1)
#define default_MCA_polarity(idx) (0)
static int __init MPBIOS_polarity(int idx) static int __init MPBIOS_polarity(int idx)
{ {
int bus = mp_irqs[idx].mpc_srcbus; int bus = mp_irqs[idx].mpc_srcbus;
...@@ -530,21 +499,11 @@ static int __init MPBIOS_polarity(int idx) ...@@ -530,21 +499,11 @@ static int __init MPBIOS_polarity(int idx)
polarity = default_ISA_polarity(idx); polarity = default_ISA_polarity(idx);
break; break;
} }
case MP_BUS_EISA: /* EISA pin */
{
polarity = default_EISA_polarity(idx);
break;
}
case MP_BUS_PCI: /* PCI pin */ case MP_BUS_PCI: /* PCI pin */
{ {
polarity = default_PCI_polarity(idx); polarity = default_PCI_polarity(idx);
break; break;
} }
case MP_BUS_MCA: /* MCA pin */
{
polarity = default_MCA_polarity(idx);
break;
}
default: default:
{ {
printk(KERN_WARNING "broken BIOS!!\n"); printk(KERN_WARNING "broken BIOS!!\n");
...@@ -599,21 +558,11 @@ static int MPBIOS_trigger(int idx) ...@@ -599,21 +558,11 @@ static int MPBIOS_trigger(int idx)
trigger = default_ISA_trigger(idx); trigger = default_ISA_trigger(idx);
break; break;
} }
case MP_BUS_EISA: /* EISA pin */
{
trigger = default_EISA_trigger(idx);
break;
}
case MP_BUS_PCI: /* PCI pin */ case MP_BUS_PCI: /* PCI pin */
{ {
trigger = default_PCI_trigger(idx); trigger = default_PCI_trigger(idx);
break; break;
} }
case MP_BUS_MCA: /* MCA pin */
{
trigger = default_MCA_trigger(idx);
break;
}
default: default:
{ {
printk(KERN_WARNING "broken BIOS!!\n"); printk(KERN_WARNING "broken BIOS!!\n");
...@@ -731,8 +680,6 @@ static int pin_2_irq(int idx, int apic, int pin) ...@@ -731,8 +680,6 @@ static int pin_2_irq(int idx, int apic, int pin)
switch (mp_bus_id_to_type[bus]) switch (mp_bus_id_to_type[bus])
{ {
case MP_BUS_ISA: /* ISA pin */ case MP_BUS_ISA: /* ISA pin */
case MP_BUS_EISA:
case MP_BUS_MCA:
{ {
irq = mp_irqs[idx].mpc_srcbusirq; irq = mp_irqs[idx].mpc_srcbusirq;
break; break;
......
...@@ -175,14 +175,10 @@ static void __init MP_bus_info (struct mpc_config_bus *m) ...@@ -175,14 +175,10 @@ static void __init MP_bus_info (struct mpc_config_bus *m)
if (strncmp(str, "ISA", 3) == 0) { if (strncmp(str, "ISA", 3) == 0) {
mp_bus_id_to_type[m->mpc_busid] = MP_BUS_ISA; mp_bus_id_to_type[m->mpc_busid] = MP_BUS_ISA;
} else if (strncmp(str, "EISA", 4) == 0) {
mp_bus_id_to_type[m->mpc_busid] = MP_BUS_EISA;
} else if (strncmp(str, "PCI", 3) == 0) { } else if (strncmp(str, "PCI", 3) == 0) {
mp_bus_id_to_type[m->mpc_busid] = MP_BUS_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_bus_id_to_pci_bus[m->mpc_busid] = mp_current_pci_id;
mp_current_pci_id++; mp_current_pci_id++;
} else if (strncmp(str, "MCA", 3) == 0) {
mp_bus_id_to_type[m->mpc_busid] = MP_BUS_MCA;
} else { } else {
printk(KERN_ERR "Unknown bustype %s\n", str); printk(KERN_ERR "Unknown bustype %s\n", str);
} }
...@@ -465,14 +461,6 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type) ...@@ -465,14 +461,6 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
case 5: case 5:
memcpy(bus.mpc_bustype, "ISA ", 6); memcpy(bus.mpc_bustype, "ISA ", 6);
break; break;
case 2:
case 6:
case 3:
memcpy(bus.mpc_bustype, "EISA ", 6);
break;
case 4:
case 7:
memcpy(bus.mpc_bustype, "MCA ", 6);
} }
MP_bus_info(&bus); MP_bus_info(&bus);
if (mpc_default_type > 4) { if (mpc_default_type > 4) {
...@@ -629,9 +617,7 @@ void __init find_intel_smp (void) ...@@ -629,9 +617,7 @@ void __init find_intel_smp (void)
smp_scan_config(0xF0000,0x10000)) smp_scan_config(0xF0000,0x10000))
return; return;
/* /*
* If it is an SMP machine we should know now, unless the * If it is an SMP machine we should know now.
* configuration is in an EISA/MCA bus machine with an
* extended bios data area.
* *
* there is a real-mode segmented pointer pointing to the * there is a real-mode segmented pointer pointing to the
* 4K EBDA area at 0x40E, calculate and scan it here. * 4K EBDA area at 0x40E, calculate and scan it here.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment