Skip to content

Commit de972fd

Browse files
committed
ACPI: PCI: Replace direct printk() invocations in pci_link.c
Replace the direct printk() invocations in pci_link.c with (mostly corresponding) acpi_handle_*() calls relative to the ACPI handle of the given link device, which allows the AML corresponding to those messages to be identified more easily, or with pr_*() calls. While at it, add a pr_fmt() definition ot pci_link.c, make acpi_pci_link_check_possible() print all messages with acpi_handle_debug() for consistency and replace the (not-so- reliable) KERN_CONT-based message line composition in acpi_pci_link_add() with two pr_info() and a series of acpi_handle_debug() calls (the latter for the possible IRQs). Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Hanjun Guo <guohanjun@huawei.com>
1 parent 866d6cd commit de972fd

1 file changed

Lines changed: 38 additions & 48 deletions

File tree

drivers/acpi/pci_link.c

Lines changed: 38 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
* for IRQ management (e.g. start()->_SRS).
1313
*/
1414

15+
#define pr_fmt(fmt) "ACPI: PCI: " fmt
16+
1517
#include <linux/syscore_ops.h>
1618
#include <linux/kernel.h>
1719
#include <linux/module.h>
@@ -102,9 +104,9 @@ static acpi_status acpi_pci_link_check_possible(struct acpi_resource *resource,
102104
(i < p->interrupt_count
103105
&& i < ACPI_PCI_LINK_MAX_POSSIBLE); i++) {
104106
if (!p->interrupts[i]) {
105-
printk(KERN_WARNING PREFIX
106-
"Invalid _PRS IRQ %d\n",
107-
p->interrupts[i]);
107+
acpi_handle_debug(handle,
108+
"Invalid _PRS IRQ %d\n",
109+
p->interrupts[i]);
108110
continue;
109111
}
110112
link->irq.possible[i] = p->interrupts[i];
@@ -120,17 +122,17 @@ static acpi_status acpi_pci_link_check_possible(struct acpi_resource *resource,
120122
struct acpi_resource_extended_irq *p =
121123
&resource->data.extended_irq;
122124
if (!p || !p->interrupt_count) {
123-
printk(KERN_WARNING PREFIX
124-
"Blank _PRS EXT IRQ resource\n");
125+
acpi_handle_debug(handle,
126+
"Blank _PRS EXT IRQ resource\n");
125127
return AE_OK;
126128
}
127129
for (i = 0;
128130
(i < p->interrupt_count
129131
&& i < ACPI_PCI_LINK_MAX_POSSIBLE); i++) {
130132
if (!p->interrupts[i]) {
131-
printk(KERN_WARNING PREFIX
132-
"Invalid _PRS IRQ %d\n",
133-
p->interrupts[i]);
133+
acpi_handle_debug(handle,
134+
"Invalid _PRS IRQ %d\n",
135+
p->interrupts[i]);
134136
continue;
135137
}
136138
link->irq.possible[i] = p->interrupts[i];
@@ -142,8 +144,8 @@ static acpi_status acpi_pci_link_check_possible(struct acpi_resource *resource,
142144
break;
143145
}
144146
default:
145-
printk(KERN_ERR PREFIX "_PRS resource type 0x%x isn't an IRQ\n",
146-
resource->type);
147+
acpi_handle_debug(handle, "_PRS resource type 0x%x is not IRQ\n",
148+
resource->type);
147149
return AE_OK;
148150
}
149151

@@ -527,6 +529,7 @@ static int acpi_irq_balance = -1; /* 0: static, 1: balance */
527529

528530
static int acpi_pci_link_allocate(struct acpi_pci_link *link)
529531
{
532+
acpi_handle handle = link->device->handle;
530533
int irq;
531534
int i;
532535

@@ -549,8 +552,8 @@ static int acpi_pci_link_allocate(struct acpi_pci_link *link)
549552
*/
550553
if (i == link->irq.possible_count) {
551554
if (acpi_strict)
552-
printk(KERN_WARNING PREFIX "_CRS %d not found"
553-
" in _PRS\n", link->irq.active);
555+
acpi_handle_warn(handle, "_CRS %d not found in _PRS\n",
556+
link->irq.active);
554557
link->irq.active = 0;
555558
}
556559

@@ -574,28 +577,23 @@ static int acpi_pci_link_allocate(struct acpi_pci_link *link)
574577
}
575578
}
576579
if (acpi_irq_get_penalty(irq) >= PIRQ_PENALTY_ISA_ALWAYS) {
577-
printk(KERN_ERR PREFIX "No IRQ available for %s [%s]. "
578-
"Try pci=noacpi or acpi=off\n",
579-
acpi_device_name(link->device),
580-
acpi_device_bid(link->device));
580+
acpi_handle_err(handle,
581+
"No IRQ available. Try pci=noacpi or acpi=off\n");
581582
return -ENODEV;
582583
}
583584

584585
/* Attempt to enable the link device at this IRQ. */
585586
if (acpi_pci_link_set(link, irq)) {
586-
printk(KERN_ERR PREFIX "Unable to set IRQ for %s [%s]. "
587-
"Try pci=noacpi or acpi=off\n",
588-
acpi_device_name(link->device),
589-
acpi_device_bid(link->device));
587+
acpi_handle_err(handle,
588+
"Unable to set IRQ. Try pci=noacpi or acpi=off\n");
590589
return -ENODEV;
591590
} else {
592591
if (link->irq.active < ACPI_MAX_ISA_IRQS)
593592
acpi_isa_irq_penalty[link->irq.active] +=
594593
PIRQ_PENALTY_PCI_USING;
595594

596-
pr_info("%s [%s] enabled at IRQ %d\n",
597-
acpi_device_name(link->device),
598-
acpi_device_bid(link->device), link->irq.active);
595+
acpi_handle_info(handle, "Enabled at IRQ %d\n",
596+
link->irq.active);
599597
}
600598

601599
link->irq.initialized = 1;
@@ -616,19 +614,19 @@ int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering,
616614

617615
result = acpi_bus_get_device(handle, &device);
618616
if (result) {
619-
printk(KERN_ERR PREFIX "Invalid link device\n");
617+
acpi_handle_err(handle, "Invalid link device\n");
620618
return -1;
621619
}
622620

623621
link = acpi_driver_data(device);
624622
if (!link) {
625-
printk(KERN_ERR PREFIX "Invalid link context\n");
623+
acpi_handle_err(handle, "Invalid link context\n");
626624
return -1;
627625
}
628626

629627
/* TBD: Support multiple index (IRQ) entries per Link Device */
630628
if (index) {
631-
printk(KERN_ERR PREFIX "Invalid index %d\n", index);
629+
acpi_handle_err(handle, "Invalid index %d\n", index);
632630
return -1;
633631
}
634632

@@ -640,7 +638,7 @@ int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering,
640638

641639
if (!link->irq.active) {
642640
mutex_unlock(&acpi_link_lock);
643-
printk(KERN_ERR PREFIX "Link active IRQ is 0!\n");
641+
acpi_handle_err(handle, "Link active IRQ is 0!\n");
644642
return -1;
645643
}
646644
link->refcnt++;
@@ -668,20 +666,20 @@ int acpi_pci_link_free_irq(acpi_handle handle)
668666

669667
result = acpi_bus_get_device(handle, &device);
670668
if (result) {
671-
printk(KERN_ERR PREFIX "Invalid link device\n");
669+
acpi_handle_err(handle, "Invalid link device\n");
672670
return -1;
673671
}
674672

675673
link = acpi_driver_data(device);
676674
if (!link) {
677-
printk(KERN_ERR PREFIX "Invalid link context\n");
675+
acpi_handle_err(handle, "Invalid link context\n");
678676
return -1;
679677
}
680678

681679
mutex_lock(&acpi_link_lock);
682680
if (!link->irq.initialized) {
683681
mutex_unlock(&acpi_link_lock);
684-
printk(KERN_ERR PREFIX "Link isn't initialized\n");
682+
acpi_handle_err(handle, "Link isn't initialized\n");
685683
return -1;
686684
}
687685
#ifdef FUTURE_USE
@@ -712,10 +710,10 @@ int acpi_pci_link_free_irq(acpi_handle handle)
712710
static int acpi_pci_link_add(struct acpi_device *device,
713711
const struct acpi_device_id *not_used)
714712
{
715-
int result;
713+
acpi_handle handle = device->handle;
716714
struct acpi_pci_link *link;
715+
int result;
717716
int i;
718-
int found = 0;
719717

720718
link = kzalloc(sizeof(struct acpi_pci_link), GFP_KERNEL);
721719
if (!link)
@@ -734,31 +732,23 @@ static int acpi_pci_link_add(struct acpi_device *device,
734732
/* query and set link->irq.active */
735733
acpi_pci_link_get_current(link);
736734

737-
printk(KERN_INFO PREFIX "%s [%s] (IRQs", acpi_device_name(device),
738-
acpi_device_bid(device));
735+
pr_info("Interrupt link %s configured for IRQ %d\n",
736+
acpi_device_bid(device), link->irq.active);
737+
739738
for (i = 0; i < link->irq.possible_count; i++) {
740-
if (link->irq.active == link->irq.possible[i]) {
741-
printk(KERN_CONT " *%d", link->irq.possible[i]);
742-
found = 1;
743-
} else
744-
printk(KERN_CONT " %d", link->irq.possible[i]);
739+
if (link->irq.active != link->irq.possible[i])
740+
acpi_handle_debug(handle, "Possible IRQ %d\n",
741+
link->irq.possible[i]);
745742
}
746743

747-
printk(KERN_CONT ")");
748-
749-
if (!found)
750-
printk(KERN_CONT " *%d", link->irq.active);
751-
752744
if (!link->device->status.enabled)
753-
printk(KERN_CONT ", disabled.");
754-
755-
printk(KERN_CONT "\n");
745+
pr_info("Interrupt link %s disabled\n", acpi_device_bid(device));
756746

757747
list_add_tail(&link->list, &acpi_link_list);
758748

759749
end:
760750
/* disable all links -- to be activated on use */
761-
acpi_evaluate_object(device->handle, "_DIS", NULL, NULL);
751+
acpi_evaluate_object(handle, "_DIS", NULL, NULL);
762752
mutex_unlock(&acpi_link_lock);
763753

764754
if (result)

0 commit comments

Comments
 (0)