aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/io_apic_64.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/io_apic_64.c')
-rw-r--r--arch/x86/kernel/io_apic_64.c58
1 files changed, 29 insertions, 29 deletions
diff --git a/arch/x86/kernel/io_apic_64.c b/arch/x86/kernel/io_apic_64.c
index 4555ad8c2070..e7f1476ed537 100644
--- a/arch/x86/kernel/io_apic_64.c
+++ b/arch/x86/kernel/io_apic_64.c
@@ -108,7 +108,7 @@ struct mp_config_ioapic mp_ioapics[MAX_IO_APICS];
108int nr_ioapics; 108int nr_ioapics;
109 109
110/* MP IRQ source entries */ 110/* MP IRQ source entries */
111struct mpc_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; 111struct mp_config_intsrc mp_irqs[MAX_IRQ_SOURCES];
112 112
113/* # of MP IRQ source entries */ 113/* # of MP IRQ source entries */
114int mp_irq_entries; 114int mp_irq_entries;
@@ -453,10 +453,10 @@ static int find_irq_entry(int apic, int pin, int type)
453 int i; 453 int i;
454 454
455 for (i = 0; i < mp_irq_entries; i++) 455 for (i = 0; i < mp_irq_entries; i++)
456 if (mp_irqs[i].mpc_irqtype == type && 456 if (mp_irqs[i].mp_irqtype == type &&
457 (mp_irqs[i].mpc_dstapic == mp_ioapics[apic].mp_apicid || 457 (mp_irqs[i].mp_dstapic == mp_ioapics[apic].mp_apicid ||
458 mp_irqs[i].mpc_dstapic == MP_APIC_ALL) && 458 mp_irqs[i].mp_dstapic == MP_APIC_ALL) &&
459 mp_irqs[i].mpc_dstirq == pin) 459 mp_irqs[i].mp_dstirq == pin)
460 return i; 460 return i;
461 461
462 return -1; 462 return -1;
@@ -470,13 +470,13 @@ static int __init find_isa_irq_pin(int irq, int type)
470 int i; 470 int i;
471 471
472 for (i = 0; i < mp_irq_entries; i++) { 472 for (i = 0; i < mp_irq_entries; i++) {
473 int lbus = mp_irqs[i].mpc_srcbus; 473 int lbus = mp_irqs[i].mp_srcbus;
474 474
475 if (test_bit(lbus, mp_bus_not_pci) && 475 if (test_bit(lbus, mp_bus_not_pci) &&
476 (mp_irqs[i].mpc_irqtype == type) && 476 (mp_irqs[i].mp_irqtype == type) &&
477 (mp_irqs[i].mpc_srcbusirq == irq)) 477 (mp_irqs[i].mp_srcbusirq == irq))
478 478
479 return mp_irqs[i].mpc_dstirq; 479 return mp_irqs[i].mp_dstirq;
480 } 480 }
481 return -1; 481 return -1;
482} 482}
@@ -486,17 +486,17 @@ static int __init find_isa_irq_apic(int irq, int type)
486 int i; 486 int i;
487 487
488 for (i = 0; i < mp_irq_entries; i++) { 488 for (i = 0; i < mp_irq_entries; i++) {
489 int lbus = mp_irqs[i].mpc_srcbus; 489 int lbus = mp_irqs[i].mp_srcbus;
490 490
491 if (test_bit(lbus, mp_bus_not_pci) && 491 if (test_bit(lbus, mp_bus_not_pci) &&
492 (mp_irqs[i].mpc_irqtype == type) && 492 (mp_irqs[i].mp_irqtype == type) &&
493 (mp_irqs[i].mpc_srcbusirq == irq)) 493 (mp_irqs[i].mp_srcbusirq == irq))
494 break; 494 break;
495 } 495 }
496 if (i < mp_irq_entries) { 496 if (i < mp_irq_entries) {
497 int apic; 497 int apic;
498 for(apic = 0; apic < nr_ioapics; apic++) { 498 for(apic = 0; apic < nr_ioapics; apic++) {
499 if (mp_ioapics[apic].mp_apicid == mp_irqs[i].mpc_dstapic) 499 if (mp_ioapics[apic].mp_apicid == mp_irqs[i].mp_dstapic)
500 return apic; 500 return apic;
501 } 501 }
502 } 502 }
@@ -521,23 +521,23 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin)
521 return -1; 521 return -1;
522 } 522 }
523 for (i = 0; i < mp_irq_entries; i++) { 523 for (i = 0; i < mp_irq_entries; i++) {
524 int lbus = mp_irqs[i].mpc_srcbus; 524 int lbus = mp_irqs[i].mp_srcbus;
525 525
526 for (apic = 0; apic < nr_ioapics; apic++) 526 for (apic = 0; apic < nr_ioapics; apic++)
527 if (mp_ioapics[apic].mp_apicid == mp_irqs[i].mpc_dstapic || 527 if (mp_ioapics[apic].mp_apicid == mp_irqs[i].mp_dstapic ||
528 mp_irqs[i].mpc_dstapic == MP_APIC_ALL) 528 mp_irqs[i].mp_dstapic == MP_APIC_ALL)
529 break; 529 break;
530 530
531 if (!test_bit(lbus, mp_bus_not_pci) && 531 if (!test_bit(lbus, mp_bus_not_pci) &&
532 !mp_irqs[i].mpc_irqtype && 532 !mp_irqs[i].mp_irqtype &&
533 (bus == lbus) && 533 (bus == lbus) &&
534 (slot == ((mp_irqs[i].mpc_srcbusirq >> 2) & 0x1f))) { 534 (slot == ((mp_irqs[i].mp_srcbusirq >> 2) & 0x1f))) {
535 int irq = pin_2_irq(i,apic,mp_irqs[i].mpc_dstirq); 535 int irq = pin_2_irq(i,apic,mp_irqs[i].mp_dstirq);
536 536
537 if (!(apic || IO_APIC_IRQ(irq))) 537 if (!(apic || IO_APIC_IRQ(irq)))
538 continue; 538 continue;
539 539
540 if (pin == (mp_irqs[i].mpc_srcbusirq & 3)) 540 if (pin == (mp_irqs[i].mp_srcbusirq & 3))
541 return irq; 541 return irq;
542 /* 542 /*
543 * Use the first all-but-pin matching entry as a 543 * Use the first all-but-pin matching entry as a
@@ -565,13 +565,13 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin)
565 565
566static int MPBIOS_polarity(int idx) 566static int MPBIOS_polarity(int idx)
567{ 567{
568 int bus = mp_irqs[idx].mpc_srcbus; 568 int bus = mp_irqs[idx].mp_srcbus;
569 int polarity; 569 int polarity;
570 570
571 /* 571 /*
572 * Determine IRQ line polarity (high active or low active): 572 * Determine IRQ line polarity (high active or low active):
573 */ 573 */
574 switch (mp_irqs[idx].mpc_irqflag & 3) 574 switch (mp_irqs[idx].mp_irqflag & 3)
575 { 575 {
576 case 0: /* conforms, ie. bus-type dependent polarity */ 576 case 0: /* conforms, ie. bus-type dependent polarity */
577 if (test_bit(bus, mp_bus_not_pci)) 577 if (test_bit(bus, mp_bus_not_pci))
@@ -607,13 +607,13 @@ static int MPBIOS_polarity(int idx)
607 607
608static int MPBIOS_trigger(int idx) 608static int MPBIOS_trigger(int idx)
609{ 609{
610 int bus = mp_irqs[idx].mpc_srcbus; 610 int bus = mp_irqs[idx].mp_srcbus;
611 int trigger; 611 int trigger;
612 612
613 /* 613 /*
614 * Determine IRQ trigger mode (edge or level sensitive): 614 * Determine IRQ trigger mode (edge or level sensitive):
615 */ 615 */
616 switch ((mp_irqs[idx].mpc_irqflag>>2) & 3) 616 switch ((mp_irqs[idx].mp_irqflag>>2) & 3)
617 { 617 {
618 case 0: /* conforms, ie. bus-type dependent */ 618 case 0: /* conforms, ie. bus-type dependent */
619 if (test_bit(bus, mp_bus_not_pci)) 619 if (test_bit(bus, mp_bus_not_pci))
@@ -660,16 +660,16 @@ static inline int irq_trigger(int idx)
660static int pin_2_irq(int idx, int apic, int pin) 660static int pin_2_irq(int idx, int apic, int pin)
661{ 661{
662 int irq, i; 662 int irq, i;
663 int bus = mp_irqs[idx].mpc_srcbus; 663 int bus = mp_irqs[idx].mp_srcbus;
664 664
665 /* 665 /*
666 * Debugging check, we are in big trouble if this message pops up! 666 * Debugging check, we are in big trouble if this message pops up!
667 */ 667 */
668 if (mp_irqs[idx].mpc_dstirq != pin) 668 if (mp_irqs[idx].mp_dstirq != pin)
669 printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n"); 669 printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n");
670 670
671 if (test_bit(bus, mp_bus_not_pci)) { 671 if (test_bit(bus, mp_bus_not_pci)) {
672 irq = mp_irqs[idx].mpc_srcbusirq; 672 irq = mp_irqs[idx].mp_srcbusirq;
673 } else { 673 } else {
674 /* 674 /*
675 * PCI IRQs are mapped in order 675 * PCI IRQs are mapped in order
@@ -2242,8 +2242,8 @@ int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity)
2242 return -1; 2242 return -1;
2243 2243
2244 for (i = 0; i < mp_irq_entries; i++) 2244 for (i = 0; i < mp_irq_entries; i++)
2245 if (mp_irqs[i].mpc_irqtype == mp_INT && 2245 if (mp_irqs[i].mp_irqtype == mp_INT &&
2246 mp_irqs[i].mpc_srcbusirq == bus_irq) 2246 mp_irqs[i].mp_srcbusirq == bus_irq)
2247 break; 2247 break;
2248 if (i >= mp_irq_entries) 2248 if (i >= mp_irq_entries)
2249 return -1; 2249 return -1;