diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-16 17:52:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-16 17:52:12 -0400 |
commit | 4314652bb41df08ad65bd25176ba1dfd24b14a51 (patch) | |
tree | 1632ae5936422bb36f2c43948bf079b7ca17e76f /drivers/acpi/pci_irq.c | |
parent | d442cc44c0db56e84ef6aa244a88427d2efe06cd (diff) | |
parent | 01a5bba576b9364b33f61f0cd9fa70c2cf5535e2 (diff) |
Merge branch 'release-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-acpi-merge-2.6
* 'release-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-acpi-merge-2.6: (87 commits)
Fix FADT parsing
Add the ability to reset the machine using the RESET_REG in ACPI's FADT table.
ACPI: use dev_printk when possible
PNPACPI: add support for HP vendor-specific CCSR descriptors
PNP: avoid legacy IDE IRQs
PNP: convert resource options to single linked list
ISAPNP: handle independent options following dependent ones
PNP: remove extra 0x100 bit from option priority
PNP: support optional IRQ resources
PNP: rename pnp_register_*_resource() local variables
PNPACPI: ignore _PRS interrupt numbers larger than PNP_IRQ_NR
PNP: centralize resource option allocations
PNP: remove redundant pnp_can_configure() check
PNP: make resource assignment functions return 0 (success) or -EBUSY (failure)
PNP: in debug resource dump, make empty list obvious
PNP: improve resource assignment debug
PNP: increase I/O port & memory option address sizes
PNP: introduce pnp_irq_mask_t typedef
PNP: make resource option structures private to PNP subsystem
PNP: define PNP-specific IORESOURCE_IO_* flags alongside IRQ, DMA, MEM
...
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 89022a74faee..11acaee14d66 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, |
@@ -429,7 +429,7 @@ acpi_pci_irq_derive(struct pci_dev *dev, | |||
429 | { | 429 | { |
430 | struct pci_dev *bridge = dev; | 430 | struct pci_dev *bridge = dev; |
431 | int irq = -1; | 431 | int irq = -1; |
432 | u8 bridge_pin = 0; | 432 | u8 bridge_pin = 0, orig_pin = pin; |
433 | 433 | ||
434 | 434 | ||
435 | if (!dev) | 435 | if (!dev) |
@@ -463,8 +463,8 @@ acpi_pci_irq_derive(struct pci_dev *dev, | |||
463 | } | 463 | } |
464 | 464 | ||
465 | if (irq < 0) { | 465 | if (irq < 0) { |
466 | printk(KERN_WARNING PREFIX "Unable to derive IRQ for device %s\n", | 466 | dev_warn(&dev->dev, "can't derive routing for PCI INT %c\n", |
467 | pci_name(dev)); | 467 | 'A' + orig_pin); |
468 | return -1; | 468 | return -1; |
469 | } | 469 | } |
470 | 470 | ||
@@ -487,6 +487,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev) | |||
487 | int triggering = ACPI_LEVEL_SENSITIVE; | 487 | int triggering = ACPI_LEVEL_SENSITIVE; |
488 | int polarity = ACPI_ACTIVE_LOW; | 488 | int polarity = ACPI_ACTIVE_LOW; |
489 | char *link = NULL; | 489 | char *link = NULL; |
490 | char link_desc[16]; | ||
490 | int rc; | 491 | int rc; |
491 | 492 | ||
492 | 493 | ||
@@ -503,7 +504,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev) | |||
503 | pin--; | 504 | pin--; |
504 | 505 | ||
505 | if (!dev->bus) { | 506 | if (!dev->bus) { |
506 | printk(KERN_ERR PREFIX "Invalid (NULL) 'bus' field\n"); | 507 | dev_err(&dev->dev, "invalid (NULL) 'bus' field\n"); |
507 | return -ENODEV; | 508 | return -ENODEV; |
508 | } | 509 | } |
509 | 510 | ||
@@ -538,8 +539,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev) | |||
538 | * driver reported one, then use it. Exit in any case. | 539 | * driver reported one, then use it. Exit in any case. |
539 | */ | 540 | */ |
540 | if (irq < 0) { | 541 | if (irq < 0) { |
541 | printk(KERN_WARNING PREFIX "PCI Interrupt %s[%c]: no GSI", | 542 | dev_warn(&dev->dev, "PCI INT %c: no GSI", 'A' + pin); |
542 | pci_name(dev), ('A' + pin)); | ||
543 | /* Interrupt Line values above 0xF are forbidden */ | 543 | /* Interrupt Line values above 0xF are forbidden */ |
544 | if (dev->irq > 0 && (dev->irq <= 0xF)) { | 544 | if (dev->irq > 0 && (dev->irq <= 0xF)) { |
545 | printk(" - using IRQ %d\n", dev->irq); | 545 | printk(" - using IRQ %d\n", dev->irq); |
@@ -554,21 +554,21 @@ int acpi_pci_irq_enable(struct pci_dev *dev) | |||
554 | 554 | ||
555 | rc = acpi_register_gsi(irq, triggering, polarity); | 555 | rc = acpi_register_gsi(irq, triggering, polarity); |
556 | if (rc < 0) { | 556 | if (rc < 0) { |
557 | printk(KERN_WARNING PREFIX "PCI Interrupt %s[%c]: failed " | 557 | dev_warn(&dev->dev, "PCI INT %c: failed to register GSI\n", |
558 | "to register GSI\n", pci_name(dev), ('A' + pin)); | 558 | 'A' + pin); |
559 | return rc; | 559 | return rc; |
560 | } | 560 | } |
561 | dev->irq = rc; | 561 | dev->irq = rc; |
562 | 562 | ||
563 | printk(KERN_INFO PREFIX "PCI Interrupt %s[%c] -> ", | ||
564 | pci_name(dev), 'A' + pin); | ||
565 | |||
566 | if (link) | 563 | if (link) |
567 | printk("Link [%s] -> ", link); | 564 | snprintf(link_desc, sizeof(link_desc), " -> Link[%s]", link); |
565 | else | ||
566 | link_desc[0] = '\0'; | ||
568 | 567 | ||
569 | printk("GSI %u (%s, %s) -> IRQ %d\n", irq, | 568 | dev_info(&dev->dev, "PCI INT %c%s -> GSI %u (%s, %s) -> IRQ %d\n", |
570 | (triggering == ACPI_LEVEL_SENSITIVE) ? "level" : "edge", | 569 | 'A' + pin, link_desc, irq, |
571 | (polarity == ACPI_ACTIVE_LOW) ? "low" : "high", dev->irq); | 570 | (triggering == ACPI_LEVEL_SENSITIVE) ? "level" : "edge", |
571 | (polarity == ACPI_ACTIVE_LOW) ? "low" : "high", dev->irq); | ||
572 | 572 | ||
573 | return 0; | 573 | return 0; |
574 | } | 574 | } |
@@ -616,10 +616,6 @@ void acpi_pci_irq_disable(struct pci_dev *dev) | |||
616 | * (e.g. PCI_UNDEFINED_IRQ). | 616 | * (e.g. PCI_UNDEFINED_IRQ). |
617 | */ | 617 | */ |
618 | 618 | ||
619 | printk(KERN_INFO PREFIX "PCI interrupt for device %s disabled\n", | 619 | dev_info(&dev->dev, "PCI INT %c disabled\n", 'A' + pin); |
620 | pci_name(dev)); | ||
621 | |||
622 | acpi_unregister_gsi(gsi); | 620 | acpi_unregister_gsi(gsi); |
623 | |||
624 | return; | ||
625 | } | 621 | } |