PCI/PME: Log PME IRQ when claiming Root Port

We already log a "Signaling PME" whenever the PME service driver claims a
Root Port.  In fact, we also log the same message for every device in the
hierarchy below the Root Port.

Log the "Signaling PME" once (only for the Root Port, since we can
trivially find out which devices are below the Root Port), and include the
IRQ number in the message to help connect the dots with /proc/interrupts.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Bjorn Helgaas 2016-11-21 15:07:53 -06:00
parent 0a1e1b26f5
commit a902d81ac8

View File

@ -300,8 +300,6 @@ static irqreturn_t pcie_pme_irq(int irq, void *context)
*/ */
static int pcie_pme_set_native(struct pci_dev *dev, void *ign) static int pcie_pme_set_native(struct pci_dev *dev, void *ign)
{ {
dev_info(&dev->dev, "Signaling PME through PCIe PME interrupt\n");
device_set_run_wake(&dev->dev, true); device_set_run_wake(&dev->dev, true);
dev->pme_interrupt = true; dev->pme_interrupt = true;
return 0; return 0;
@ -349,12 +347,14 @@ static int pcie_pme_probe(struct pcie_device *srv)
ret = request_irq(srv->irq, pcie_pme_irq, IRQF_SHARED, "PCIe PME", srv); ret = request_irq(srv->irq, pcie_pme_irq, IRQF_SHARED, "PCIe PME", srv);
if (ret) { if (ret) {
kfree(data); kfree(data);
} else { return ret;
pcie_pme_mark_devices(port);
pcie_pme_interrupt_enable(port, true);
} }
return ret; dev_info(&port->dev, "Signaling PME with IRQ %d\n", srv->irq);
pcie_pme_mark_devices(port);
pcie_pme_interrupt_enable(port, true);
return 0;
} }
static bool pcie_pme_check_wakeup(struct pci_bus *bus) static bool pcie_pme_check_wakeup(struct pci_bus *bus)