aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/pci_irq.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-07-18 13:31:12 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-18 13:31:12 -0400
commit3e370b29d35fb01bfb92c2814d6f79bf6a2cb970 (patch)
tree3b8fb467d60bfe6a34686f4abdc3a60050ba40a4 /drivers/acpi/pci_irq.c
parent88d1dce3a74367291f65a757fbdcaf17f042f30c (diff)
parent5b664cb235e97afbf34db9c4d77f08ebd725335e (diff)
Merge branch 'linus' into x86/pci-ioapic-boot-irq-quirks
Conflicts: drivers/pci/quirks.c Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/acpi/pci_irq.c')
-rw-r--r--drivers/acpi/pci_irq.c38
1 files changed, 17 insertions, 21 deletions
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index b37cb0a9826e..bf79d83bdfbb 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -162,7 +162,7 @@ do_prt_fixups(struct acpi_prt_entry *entry, struct acpi_pci_routing_table *prt)
162 !strcmp(prt->source, quirk->source) && 162 !strcmp(prt->source, quirk->source) &&
163 strlen(prt->source) >= strlen(quirk->actual_source)) { 163 strlen(prt->source) >= strlen(quirk->actual_source)) {
164 printk(KERN_WARNING PREFIX "firmware reports " 164 printk(KERN_WARNING PREFIX "firmware reports "
165 "%04x:%02x:%02x[%c] connected to %s; " 165 "%04x:%02x:%02x PCI INT %c connected to %s; "
166 "changing to %s\n", 166 "changing to %s\n",
167 entry->id.segment, entry->id.bus, 167 entry->id.segment, entry->id.bus,
168 entry->id.device, 'A' + entry->pin, 168 entry->id.device, 'A' + entry->pin,
@@ -485,7 +485,7 @@ acpi_pci_irq_derive(struct pci_dev *dev,
485{ 485{
486 struct pci_dev *bridge = dev; 486 struct pci_dev *bridge = dev;
487 int irq = -1; 487 int irq = -1;
488 u8 bridge_pin = 0; 488 u8 bridge_pin = 0, orig_pin = pin;
489 489
490 490
491 if (!dev) 491 if (!dev)
@@ -519,8 +519,8 @@ acpi_pci_irq_derive(struct pci_dev *dev,
519 } 519 }
520 520
521 if (irq < 0) { 521 if (irq < 0) {
522 printk(KERN_WARNING PREFIX "Unable to derive IRQ for device %s\n", 522 dev_warn(&dev->dev, "can't derive routing for PCI INT %c\n",
523 pci_name(dev)); 523 'A' + orig_pin);
524 return -1; 524 return -1;
525 } 525 }
526 526
@@ -543,6 +543,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
543 int triggering = ACPI_LEVEL_SENSITIVE; 543 int triggering = ACPI_LEVEL_SENSITIVE;
544 int polarity = ACPI_ACTIVE_LOW; 544 int polarity = ACPI_ACTIVE_LOW;
545 char *link = NULL; 545 char *link = NULL;
546 char link_desc[16];
546 int rc; 547 int rc;
547 548
548 549
@@ -559,7 +560,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
559 pin--; 560 pin--;
560 561
561 if (!dev->bus) { 562 if (!dev->bus) {
562 printk(KERN_ERR PREFIX "Invalid (NULL) 'bus' field\n"); 563 dev_err(&dev->dev, "invalid (NULL) 'bus' field\n");
563 return -ENODEV; 564 return -ENODEV;
564 } 565 }
565 566
@@ -594,8 +595,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
594 * driver reported one, then use it. Exit in any case. 595 * driver reported one, then use it. Exit in any case.
595 */ 596 */
596 if (irq < 0) { 597 if (irq < 0) {
597 printk(KERN_WARNING PREFIX "PCI Interrupt %s[%c]: no GSI", 598 dev_warn(&dev->dev, "PCI INT %c: no GSI", 'A' + pin);
598 pci_name(dev), ('A' + pin));
599 /* Interrupt Line values above 0xF are forbidden */ 599 /* Interrupt Line values above 0xF are forbidden */
600 if (dev->irq > 0 && (dev->irq <= 0xF)) { 600 if (dev->irq > 0 && (dev->irq <= 0xF)) {
601 printk(" - using IRQ %d\n", dev->irq); 601 printk(" - using IRQ %d\n", dev->irq);
@@ -610,21 +610,21 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
610 610
611 rc = acpi_register_gsi(irq, triggering, polarity); 611 rc = acpi_register_gsi(irq, triggering, polarity);
612 if (rc < 0) { 612 if (rc < 0) {
613 printk(KERN_WARNING PREFIX "PCI Interrupt %s[%c]: failed " 613 dev_warn(&dev->dev, "PCI INT %c: failed to register GSI\n",
614 "to register GSI\n", pci_name(dev), ('A' + pin)); 614 'A' + pin);
615 return rc; 615 return rc;
616 } 616 }
617 dev->irq = rc; 617 dev->irq = rc;
618 618
619 printk(KERN_INFO PREFIX "PCI Interrupt %s[%c] -> ",
620 pci_name(dev), 'A' + pin);
621
622 if (link) 619 if (link)
623 printk("Link [%s] -> ", link); 620 snprintf(link_desc, sizeof(link_desc), " -> Link[%s]", link);
621 else
622 link_desc[0] = '\0';
624 623
625 printk("GSI %u (%s, %s) -> IRQ %d\n", irq, 624 dev_info(&dev->dev, "PCI INT %c%s -> GSI %u (%s, %s) -> IRQ %d\n",
626 (triggering == ACPI_LEVEL_SENSITIVE) ? "level" : "edge", 625 'A' + pin, link_desc, irq,
627 (polarity == ACPI_ACTIVE_LOW) ? "low" : "high", dev->irq); 626 (triggering == ACPI_LEVEL_SENSITIVE) ? "level" : "edge",
627 (polarity == ACPI_ACTIVE_LOW) ? "low" : "high", dev->irq);
628 628
629 return 0; 629 return 0;
630} 630}
@@ -672,10 +672,6 @@ void acpi_pci_irq_disable(struct pci_dev *dev)
672 * (e.g. PCI_UNDEFINED_IRQ). 672 * (e.g. PCI_UNDEFINED_IRQ).
673 */ 673 */
674 674
675 printk(KERN_INFO PREFIX "PCI interrupt for device %s disabled\n", 675 dev_info(&dev->dev, "PCI INT %c disabled\n", 'A' + pin);
676 pci_name(dev));
677
678 acpi_unregister_gsi(gsi); 676 acpi_unregister_gsi(gsi);
679
680 return;
681} 677}