Patch "PCI/PM: Add needs_resume flag to avoid suspend complete optimization" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
PCI/PM: Add needs_resume flag to avoid suspend complete optimization
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
pci-pm-add-needs_resume-flag-to-avoid-suspend-complete-optimization.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
4d071c3238987325b9e50e33051a40d1cce311ccMon Sep 17 00:00:00 2001
From: Imre Deak <[email protected]>
Date: Tue, 23 May 2017 14:18:17 -0500
Subject: PCI/PM: Add needs_resume flag to avoid suspend complete optimization
From: Imre Deak <[email protected]>
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.
--- drivers/pci/pci.c | 3 ++- include/linux/pci.h | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-)
drivers/pci/pci.c +2 -1
@@ -2079,7 +2079,8 @@ bool pci_dev_keep_suspended(struct pci_dif (!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;/*
include/linux/pci.h +5 -0
@@ -182,6 +182,11 @@ enum pci_dev_flags {PCI_DEV_FLAGS_NO_PM_RESET = (__force pci_dev_flags_t) (1 <<7 ),/* Get VPD from function 0 VPD */ PCI_DEV_FLAGS_VPD_REF_F0 = (__force pci_dev_flags_t) (1 <<8 ), +/* +* Resume before calling the driver's system suspend hooks, disabling +* the direct_complete optimization. +*/ + PCI_DEV_FLAGS_NEEDS_RESUME = (__force pci_dev_flags_t) (1 << 11), }; enum pci_irq_reroute_variant {
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/pci-pm-add-needs_resume-flag-to-avoid-suspend-complete-optimization.patch