diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-07-18 13:31:12 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-18 13:31:12 -0400 |
commit | 3e370b29d35fb01bfb92c2814d6f79bf6a2cb970 (patch) | |
tree | 3b8fb467d60bfe6a34686f4abdc3a60050ba40a4 /drivers/acpi/pci_irq.c | |
parent | 88d1dce3a74367291f65a757fbdcaf17f042f30c (diff) | |
parent | 5b664cb235e97afbf34db9c4d77f08ebd725335e (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.c | 38 |
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 | } |