mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-13 00:36:48 +07:00
[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: Andi Kleen <ak@suse.de>
This commit is contained in:
parent
5cb6b99928
commit
e509913434
@ -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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
#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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
|
|
||||||
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)
|
|||||||
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)
|
|||||||
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.
|
||||||
|
Loading…
Reference in New Issue
Block a user