diff options
author | Imre Deak <imre.deak@intel.com> | 2017-05-23 19:18:17 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-06-17 04:41:48 (GMT) |
commit | b372d35a522617967911b72e209d35a0c4161fe6 (patch) | |
tree | 854b126f129a4f41392c70ccb5a49e92f088d533 /drivers/pci/pci.c | |
parent | 05afd4c0af6a43f6bda7caaacb01bc0116d50d3b (diff) | |
download | linux-b372d35a522617967911b72e209d35a0c4161fe6.tar.xz |
PCI/PM: Add needs_resume flag to avoid suspend complete optimization
commit 4d071c3238987325b9e50e33051a40d1cce311cc upstream.
Some drivers - like i915 - may not support the system suspend direct
complete optimization due to differences in their runtime and system
suspend sequence. Add a flag that when set resumes the device before
calling the driver's system suspend handlers which effectively disables
the optimization.
Needed by a future patch fixing suspend/resume on i915.
Suggested by Rafael.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: stable@vger.kernel.org
(rebased on v4.8, added kernel version to commit message stable tag)
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/pci/pci.c')
-rw-r--r-- | drivers/pci/pci.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 579c494..e7d4048 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -2142,7 +2142,8 @@ bool pci_dev_keep_suspended(struct pci_dev *pci_dev) if (!pm_runtime_suspended(dev) || pci_target_state(pci_dev) != pci_dev->current_state - || platform_pci_need_resume(pci_dev)) + || platform_pci_need_resume(pci_dev) + || (pci_dev->dev_flags & PCI_DEV_FLAGS_NEEDS_RESUME)) return false; /* |