aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-09-26 04:52:29 -0400
committerAndi Kleen <andi@basil.nowhere.org>2006-09-26 04:52:29 -0400
commite50991343488edf25d58820be1684322808c763c (patch)
tree66146dc38d14df9c0c7e9871f7179b304f6b57e5 /arch
parent5cb6b99928a8f1a1bbdac7a16b88aef8cb64d432 (diff)
[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>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86_64/kernel/io_apic.c57
-rw-r--r--arch/x86_64/kernel/mpparse.c16
2 files changed, 3 insertions, 70 deletions
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c
index 86cc07caa0e5..97e90f6abcc4 100644
--- a/arch/x86_64/kernel/io_apic.c
+++ b/arch/x86_64/kernel/io_apic.c
@@ -389,9 +389,7 @@ static int __init find_isa_irq_pin(int irq, int type)
389 for (i = 0; i < mp_irq_entries; i++) { 389 for (i = 0; i < mp_irq_entries; i++) {
390 int lbus = mp_irqs[i].mpc_srcbus; 390 int lbus = mp_irqs[i].mpc_srcbus;
391 391
392 if ((mp_bus_id_to_type[lbus] == MP_BUS_ISA || 392 if (mp_bus_id_to_type[lbus] == MP_BUS_ISA &&
393 mp_bus_id_to_type[lbus] == MP_BUS_EISA ||
394 mp_bus_id_to_type[lbus] == MP_BUS_MCA) &&
395 (mp_irqs[i].mpc_irqtype == type) && 393 (mp_irqs[i].mpc_irqtype == type) &&
396 (mp_irqs[i].mpc_srcbusirq == irq)) 394 (mp_irqs[i].mpc_srcbusirq == irq))
397 395
@@ -407,9 +405,7 @@ static int __init find_isa_irq_apic(int irq, int type)
407 for (i = 0; i < mp_irq_entries; i++) { 405 for (i = 0; i < mp_irq_entries; i++) {
408 int lbus = mp_irqs[i].mpc_srcbus; 406 int lbus = mp_irqs[i].mpc_srcbus;
409 407
410 if ((mp_bus_id_to_type[lbus] == MP_BUS_ISA || 408 if ((mp_bus_id_to_type[lbus] == MP_BUS_ISA) &&
411 mp_bus_id_to_type[lbus] == MP_BUS_EISA ||
412 mp_bus_id_to_type[lbus] == MP_BUS_MCA) &&
413 (mp_irqs[i].mpc_irqtype == type) && 409 (mp_irqs[i].mpc_irqtype == type) &&
414 (mp_irqs[i].mpc_srcbusirq == irq)) 410 (mp_irqs[i].mpc_srcbusirq == irq))
415 break; 411 break;
@@ -472,27 +468,6 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin)
472 return best_guess; 468 return best_guess;
473} 469}
474 470
475/*
476 * EISA Edge/Level control register, ELCR
477 */
478static int EISA_ELCR(unsigned int irq)
479{
480 if (irq < 16) {
481 unsigned int port = 0x4d0 + (irq >> 3);
482 return (inb(port) >> (irq & 7)) & 1;
483 }
484 apic_printk(APIC_VERBOSE, "Broken MPtable reports ISA irq %d\n", irq);
485 return 0;
486}
487
488/* EISA interrupts are always polarity zero and can be edge or level
489 * trigger depending on the ELCR value. If an interrupt is listed as
490 * EISA conforming in the MP table, that means its trigger type must
491 * be read in from the ELCR */
492
493#define default_EISA_trigger(idx) (EISA_ELCR(mp_irqs[idx].mpc_srcbusirq))
494#define default_EISA_polarity(idx) (0)
495
496/* ISA interrupts are always polarity zero edge triggered, 471/* ISA interrupts are always polarity zero edge triggered,
497 * when listed as conforming in the MP table. */ 472 * when listed as conforming in the MP table. */
498 473
@@ -505,12 +480,6 @@ static int EISA_ELCR(unsigned int irq)
505#define default_PCI_trigger(idx) (1) 480#define default_PCI_trigger(idx) (1)
506#define default_PCI_polarity(idx) (1) 481#define default_PCI_polarity(idx) (1)
507 482
508/* MCA interrupts are always polarity zero level triggered,
509 * when listed as conforming in the MP table. */
510
511#define default_MCA_trigger(idx) (1)
512#define default_MCA_polarity(idx) (0)
513
514static int __init MPBIOS_polarity(int idx) 483static int __init MPBIOS_polarity(int idx)
515{ 484{
516 int bus = mp_irqs[idx].mpc_srcbus; 485 int bus = mp_irqs[idx].mpc_srcbus;
@@ -530,21 +499,11 @@ static int __init MPBIOS_polarity(int idx)
530 polarity = default_ISA_polarity(idx); 499 polarity = default_ISA_polarity(idx);
531 break; 500 break;
532 } 501 }
533 case MP_BUS_EISA: /* EISA pin */
534 {
535 polarity = default_EISA_polarity(idx);
536 break;
537 }
538 case MP_BUS_PCI: /* PCI pin */ 502 case MP_BUS_PCI: /* PCI pin */
539 { 503 {
540 polarity = default_PCI_polarity(idx); 504 polarity = default_PCI_polarity(idx);
541 break; 505 break;
542 } 506 }
543 case MP_BUS_MCA: /* MCA pin */
544 {
545 polarity = default_MCA_polarity(idx);
546 break;
547 }
548 default: 507 default:
549 { 508 {
550 printk(KERN_WARNING "broken BIOS!!\n"); 509 printk(KERN_WARNING "broken BIOS!!\n");
@@ -599,21 +558,11 @@ static int MPBIOS_trigger(int idx)
599 trigger = default_ISA_trigger(idx); 558 trigger = default_ISA_trigger(idx);
600 break; 559 break;
601 } 560 }
602 case MP_BUS_EISA: /* EISA pin */
603 {
604 trigger = default_EISA_trigger(idx);
605 break;
606 }
607 case MP_BUS_PCI: /* PCI pin */ 561 case MP_BUS_PCI: /* PCI pin */
608 { 562 {
609 trigger = default_PCI_trigger(idx); 563 trigger = default_PCI_trigger(idx);
610 break; 564 break;
611 } 565 }
612 case MP_BUS_MCA: /* MCA pin */
613 {
614 trigger = default_MCA_trigger(idx);
615 break;
616 }
617 default: 566 default:
618 { 567 {
619 printk(KERN_WARNING "broken BIOS!!\n"); 568 printk(KERN_WARNING "broken BIOS!!\n");
@@ -731,8 +680,6 @@ static int pin_2_irq(int idx, int apic, int pin)
731 switch (mp_bus_id_to_type[bus]) 680 switch (mp_bus_id_to_type[bus])
732 { 681 {
733 case MP_BUS_ISA: /* ISA pin */ 682 case MP_BUS_ISA: /* ISA pin */
734 case MP_BUS_EISA:
735 case MP_BUS_MCA:
736 { 683 {
737 irq = mp_irqs[idx].mpc_srcbusirq; 684 irq = mp_irqs[idx].mpc_srcbusirq;
738 break; 685 break;
diff --git a/arch/x86_64/kernel/mpparse.c b/arch/x86_64/kernel/mpparse.c
index c73dd1f41e65..90e99cf27aa5 100644
--- a/arch/x86_64/kernel/mpparse.c
+++ b/arch/x86_64/kernel/mpparse.c
@@ -175,14 +175,10 @@ static void __init MP_bus_info (struct mpc_config_bus *m)
175 175
176 if (strncmp(str, "ISA", 3) == 0) { 176 if (strncmp(str, "ISA", 3) == 0) {
177 mp_bus_id_to_type[m->mpc_busid] = MP_BUS_ISA; 177 mp_bus_id_to_type[m->mpc_busid] = MP_BUS_ISA;
178 } else if (strncmp(str, "EISA", 4) == 0) {
179 mp_bus_id_to_type[m->mpc_busid] = MP_BUS_EISA;
180 } else if (strncmp(str, "PCI", 3) == 0) { 178 } else if (strncmp(str, "PCI", 3) == 0) {
181 mp_bus_id_to_type[m->mpc_busid] = MP_BUS_PCI; 179 mp_bus_id_to_type[m->mpc_busid] = MP_BUS_PCI;
182 mp_bus_id_to_pci_bus[m->mpc_busid] = mp_current_pci_id; 180 mp_bus_id_to_pci_bus[m->mpc_busid] = mp_current_pci_id;
183 mp_current_pci_id++; 181 mp_current_pci_id++;
184 } else if (strncmp(str, "MCA", 3) == 0) {
185 mp_bus_id_to_type[m->mpc_busid] = MP_BUS_MCA;
186 } else { 182 } else {
187 printk(KERN_ERR "Unknown bustype %s\n", str); 183 printk(KERN_ERR "Unknown bustype %s\n", str);
188 } 184 }
@@ -465,14 +461,6 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
465 case 5: 461 case 5:
466 memcpy(bus.mpc_bustype, "ISA ", 6); 462 memcpy(bus.mpc_bustype, "ISA ", 6);
467 break; 463 break;
468 case 2:
469 case 6:
470 case 3:
471 memcpy(bus.mpc_bustype, "EISA ", 6);
472 break;
473 case 4:
474 case 7:
475 memcpy(bus.mpc_bustype, "MCA ", 6);
476 } 464 }
477 MP_bus_info(&bus); 465 MP_bus_info(&bus);
478 if (mpc_default_type > 4) { 466 if (mpc_default_type > 4) {
@@ -629,9 +617,7 @@ void __init find_intel_smp (void)
629 smp_scan_config(0xF0000,0x10000)) 617 smp_scan_config(0xF0000,0x10000))
630 return; 618 return;
631 /* 619 /*
632 * If it is an SMP machine we should know now, unless the 620 * If it is an SMP machine we should know now.
633 * configuration is in an EISA/MCA bus machine with an
634 * extended bios data area.
635 * 621 *
636 * there is a real-mode segmented pointer pointing to the 622 * there is a real-mode segmented pointer pointing to the
637 * 4K EBDA area at 0x40E, calculate and scan it here. 623 * 4K EBDA area at 0x40E, calculate and scan it here.