diff options
author | Andi Kleen <ak@suse.de> | 2006-09-26 04:52:29 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 04:52:29 -0400 |
commit | e50991343488edf25d58820be1684322808c763c (patch) | |
tree | 66146dc38d14df9c0c7e9871f7179b304f6b57e5 | |
parent | 5cb6b99928a8f1a1bbdac7a16b88aef8cb64d432 (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>
-rw-r--r-- | arch/x86_64/kernel/io_apic.c | 57 | ||||
-rw-r--r-- | arch/x86_64/kernel/mpparse.c | 16 |
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 | */ | ||
478 | static 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 | |||
514 | static int __init MPBIOS_polarity(int idx) | 483 | static 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. |