]> git.baikalelectronics.ru Git - kernel.git/commit
PCI/PM: Clear PCIe PME Status bit for Root Complex Event Collectors
authorBjorn Helgaas <bhelgaas@google.com>
Fri, 9 Mar 2018 17:06:55 +0000 (11:06 -0600)
committerBjorn Helgaas <helgaas@kernel.org>
Fri, 30 Mar 2018 22:26:51 +0000 (17:26 -0500)
commit8ee58ef8b2ca6abf02c05f382c13051ce557ea12
tree0681965831c41b35bfec73f1f8aeb9a134ac92ca
parent408c394e7195db98fa2dd00de3a9c81e9c4784f3
PCI/PM: Clear PCIe PME Status bit for Root Complex Event Collectors

Per PCIe r4.0, sec 6.1.6, Root Complex Event Collectors can generate PME
interrupts on behalf of Root Complex Integrated Endpoints.

Linux does not currently enable PME interrupts from RC Event Collectors,
but 98a29f31da80 ("PCI/PCIe: Clear Root PME Status bits early during system
resume") suggests PME interrupts may be enabled by the platform for ACPI-
based runtime wakeup.

Clear the PCIe PME Status bit for Root Complex Event Collectors during
resume, just like we already do for Root Ports.

If the BIOS enables PME interrupts for an event collector and neglects to
clear the status bit on resume, this change should fix the same bug as
98a29f31da80 (PMEs not working after waking from a sleep state), but for
Root Complex Integrated Endpoints.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/pci/pci-driver.c