PCI / ACPI / PM: Clear pme_poll for devices in D3cold on wakeup
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 14 Sep 2013 01:38:20 +0000 (03:38 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 19 Sep 2013 22:24:43 +0000 (00:24 +0200)
commit834145156bedadfb50121f0bc5e9d9f9f942bcca
tree66659b38081b032ae8d82919284516ef4158fee1
parent272b98c6455f00884f0350f775c5342358ebb73f
PCI / ACPI / PM: Clear pme_poll for devices in D3cold on wakeup

Commit 448bd85 (PCI/PM: add PCIe runtime D3cold support) added a
piece of code to pci_acpi_wake_dev() causing that function to behave
in a special way for devices in D3cold (so that their configuration
registers are not accessed before those devices are resumed).
However, it didn't take the clearing of the pme_poll flag into
account.  That has to be done for all devices, even if they are in
D3cold, or pci_pme_list_scan() will not know that wakeup has been
signaled for the device and will poll its PME Status bit
unnecessarily.

Fix the problem by moving the clearing of the pme_poll flag in
pci_acpi_wake_dev() before the code introduced by commit 448bd85.

Reported-and-tested-by: David E. Box <david.e.box@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: 3.6+ <stable@vger.kernel.org> # 3.6+
drivers/pci/pci-acpi.c