linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Daniel Drake <drake@endlessm.com>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Bjorn Helgaas <bhelgaas@google.com>
Subject: [PATCH 4.14 114/119] PCI: PM: Fix pci_power_up()
Date: Sun, 27 Oct 2019 22:01:31 +0100	[thread overview]
Message-ID: <20191027203349.766791277@linuxfoundation.org> (raw)
In-Reply-To: <20191027203259.948006506@linuxfoundation.org>

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

commit 45144d42f299455911cc29366656c7324a3a7c97 upstream.

There is an arbitrary difference between the system resume and
runtime resume code paths for PCI devices regarding the delay to
apply when switching the devices from D3cold to D0.

Namely, pci_restore_standard_config() used in the runtime resume
code path calls pci_set_power_state() which in turn invokes
__pci_start_power_transition() to power up the device through the
platform firmware and that function applies the transition delay
(as per PCI Express Base Specification Revision 2.0, Section 6.6.1).
However, pci_pm_default_resume_early() used in the system resume
code path calls pci_power_up() which doesn't apply the delay at
all and that causes issues to occur during resume from
suspend-to-idle on some systems where the delay is required.

Since there is no reason for that difference to exist, modify
pci_power_up() to follow pci_set_power_state() more closely and
invoke __pci_start_power_transition() from there to call the
platform firmware to power up the device (in case that's necessary).

Fixes: db288c9c5f9d ("PCI / PM: restore the original behavior of pci_set_power_state()")
Reported-by: Daniel Drake <drake@endlessm.com>
Tested-by: Daniel Drake <drake@endlessm.com>
Link: https://lore.kernel.org/linux-pm/CAD8Lp44TYxrMgPLkHCqF9hv6smEurMXvmmvmtyFhZ6Q4SE+dig@mail.gmail.com/T/#m21be74af263c6a34f36e0fc5c77c5449d9406925
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: 3.10+ <stable@vger.kernel.org> # 3.10+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/pci/pci.c |   24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -749,19 +749,6 @@ void pci_update_current_state(struct pci
 }
 
 /**
- * pci_power_up - Put the given device into D0 forcibly
- * @dev: PCI device to power up
- */
-void pci_power_up(struct pci_dev *dev)
-{
-	if (platform_pci_power_manageable(dev))
-		platform_pci_set_power_state(dev, PCI_D0);
-
-	pci_raw_set_power_state(dev, PCI_D0);
-	pci_update_current_state(dev, PCI_D0);
-}
-
-/**
  * pci_platform_power_transition - Use platform to change device power state
  * @dev: PCI device to handle.
  * @state: State to put the device into.
@@ -940,6 +927,17 @@ int pci_set_power_state(struct pci_dev *
 EXPORT_SYMBOL(pci_set_power_state);
 
 /**
+ * pci_power_up - Put the given device into D0 forcibly
+ * @dev: PCI device to power up
+ */
+void pci_power_up(struct pci_dev *dev)
+{
+	__pci_start_power_transition(dev, PCI_D0);
+	pci_raw_set_power_state(dev, PCI_D0);
+	pci_update_current_state(dev, PCI_D0);
+}
+
+/**
  * pci_choose_state - Choose the power state of a PCI device
  * @dev: PCI device to be suspended
  * @state: target sleep state for the whole system. This is the value



  parent reply	other threads:[~2019-10-27 21:12 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-27 20:59 [PATCH 4.14 000/119] 4.14.151-stable review Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 001/119] scsi: ufs: skip shutdown if hba is not powered Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 002/119] scsi: megaraid: disable device when probe failed after enabled device Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 003/119] scsi: qla2xxx: Fix unbound sleep in fcport delete path Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 004/119] ARM: OMAP2+: Fix missing reset done flag for am3 and am43 Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 005/119] ieee802154: ca8210: prevent memory leak Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 006/119] ARM: dts: am4372: Set memory bandwidth limit for DISPC Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 007/119] net: dsa: qca8k: Use up to 7 ports for all operations Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 008/119] MIPS: dts: ar9331: fix interrupt-controller size Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 009/119] xen/efi: Set nonblocking callbacks Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 010/119] nl80211: fix null pointer dereference Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 011/119] mac80211: fix txq " Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 012/119] mips: Loongson: Fix the link time qualifier of serial_exit() Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 013/119] net: hisilicon: Fix usage of uninitialized variable in function mdio_sc_cfg_reg_write() Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 014/119] r8152: Set macpassthru in reset_resume callback Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 015/119] namespace: fix namespace.pl script to support relative paths Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 016/119] md/raid0: fix warning message for parameter default_layout Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 017/119] Revert "drm/radeon: Fix EEH during kexec" Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 018/119] ocfs2: fix panic due to ocfs2_wq is null Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 019/119] ipv4: Return -ENETUNREACH if we cant create route but saddr is valid Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 020/119] net: bcmgenet: Fix RGMII_MODE_EN value for GENET v1/2/3 Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 021/119] net: bcmgenet: Set phydev->dev_flags only for internal PHYs Greg Kroah-Hartman
2019-10-27 20:59 ` [PATCH 4.14 022/119] net: i82596: fix dma_alloc_attr for sni_82596 Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 023/119] net: stmmac: disable/enable ptp_ref_clk in suspend/resume flow Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 024/119] sctp: change sctp_prot .no_autobind with true Greg Kroah-Hartman
2019-10-31  7:54   ` Rantala, Tommi T. (Nokia - FI/Espoo)
2019-10-31  9:14     ` Xin Long
2019-10-31 12:09       ` Sasha Levin
2019-11-01 17:58         ` Xin Long
2019-11-01 18:48           ` Sasha Levin
2019-10-27 21:00 ` [PATCH 4.14 025/119] net: avoid potential infinite loop in tc_ctl_action() Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 026/119] MIPS: Treat Loongson Extensions as ASEs Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 027/119] MIPS: elf_hwcap: Export userspace ASEs Greg Kroah-Hartman
2019-10-29 10:50   ` Jiaxun Yang
2019-10-30  9:02     ` Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 028/119] loop: Add LOOP_SET_DIRECT_IO to compat ioctl Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 029/119] memfd: Fix locking when tagging pins Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 030/119] USB: legousbtower: fix memleak on disconnect Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 031/119] ALSA: hda/realtek - Add support for ALC711 Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 032/119] usb: udc: lpc32xx: fix bad bit shift operation Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 033/119] USB: serial: ti_usb_3410_5052: fix port-close races Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 034/119] USB: ldusb: fix memleak on disconnect Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 035/119] USB: usblp: fix use-after-free " Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 036/119] USB: ldusb: fix read info leaks Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 037/119] arm64: sysreg: Move to use definitions for all the SCTLR bits Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 038/119] arm64: Expose support for optional ARMv8-A features Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 039/119] arm64: Fix the feature type for ID register fields Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 040/119] arm64: v8.4: Support for new floating point multiplication instructions Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 041/119] arm64: Documentation: cpu-feature-registers: Remove RES0 fields Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 042/119] arm64: Expose Arm v8.4 features Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 043/119] arm64: move SCTLR_EL{1,2} assertions to <asm/sysreg.h> Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 044/119] arm64: add PSR_AA32_* definitions Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 045/119] arm64: Introduce sysreg_clear_set() Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 046/119] arm64: capabilities: Update prototype for enable call back Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 047/119] arm64: capabilities: Move errata work around check on boot CPU Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 048/119] arm64: capabilities: Move errata processing code Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 049/119] arm64: capabilities: Prepare for fine grained capabilities Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 050/119] arm64: capabilities: Add flags to handle the conflicts on late CPU Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 051/119] arm64: capabilities: Unify the verification Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 052/119] arm64: capabilities: Filter the entries based on a given mask Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 053/119] arm64: capabilities: Prepare for grouping features and errata work arounds Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 054/119] arm64: capabilities: Split the processing of " Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 055/119] arm64: capabilities: Allow features based on local CPU scope Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 056/119] arm64: capabilities: Group handling of features and errata workarounds Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 057/119] arm64: capabilities: Introduce weak features based on local CPU Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 058/119] arm64: capabilities: Restrict KPTI detection to boot-time CPUs Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 059/119] arm64: capabilities: Add support for features enabled early Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 060/119] arm64: capabilities: Change scope of VHE to Boot CPU feature Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 061/119] arm64: capabilities: Clean up midr range helpers Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 062/119] arm64: Add helpers for checking CPU MIDR against a range Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 063/119] arm64: Add MIDR encoding for Arm Cortex-A55 and Cortex-A35 Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 064/119] arm64: capabilities: Add support for checks based on a list of MIDRs Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 065/119] arm64: KVM: Use SMCCC_ARCH_WORKAROUND_1 for Falkor BP hardening Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 066/119] arm64: dont zero DIT on signal return Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 067/119] arm64: Get rid of __smccc_workaround_1_hvc_* Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 068/119] arm64: cpufeature: Detect SSBS and advertise to userspace Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 069/119] arm64: ssbd: Add support for PSTATE.SSBS rather than trapping to EL3 Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 070/119] KVM: arm64: Set SCTLR_EL2.DSSBS if SSBD is forcefully disabled and !vhe Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 071/119] arm64: fix SSBS sanitization Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 072/119] arm64: Add sysfs vulnerability show for spectre-v1 Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 073/119] arm64: add sysfs vulnerability show for meltdown Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 074/119] arm64: enable generic CPU vulnerabilites support Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 075/119] arm64: Always enable ssb vulnerability detection Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 076/119] arm64: Provide a command line to disable spectre_v2 mitigation Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 077/119] arm64: Advertise mitigation of Spectre-v2, or lack thereof Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 078/119] arm64: Always enable spectre-v2 vulnerability detection Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 079/119] arm64: add sysfs vulnerability show for spectre-v2 Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 080/119] arm64: add sysfs vulnerability show for speculative store bypass Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 081/119] arm64: ssbs: Dont treat CPUs with SSBS as unaffected by SSB Greg Kroah-Hartman
2019-10-27 21:00 ` [PATCH 4.14 082/119] arm64: Force SSBS on context switch Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 083/119] arm64: Use firmware to detect CPUs that are not affected by Spectre-v2 Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 084/119] arm64/speculation: Support mitigations= cmdline option Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 085/119] MIPS: tlbex: Fix build_restore_pagemask KScratch restore Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 086/119] staging: wlan-ng: fix exit return when sme->key_idx >= NUM_WEPKEYS Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 087/119] scsi: sd: Ignore a failure to sync cache due to lack of authorization Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 088/119] scsi: core: save/restore command resid for error handling Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 089/119] scsi: core: try to get module before removing device Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 090/119] scsi: ch: Make it possible to open a ch device multiple times again Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 091/119] Input: da9063 - fix capability and drop KEY_SLEEP Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 092/119] Input: synaptics-rmi4 - avoid processing unknown IRQs Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 093/119] ASoC: rsnd: Reinitialize bit clock inversion flag for every format setting Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 094/119] cfg80211: wext: avoid copying malformed SSIDs Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 095/119] mac80211: Reject malformed SSID elements Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 096/119] drm/edid: Add 6 bpc quirk for SDC panel in Lenovo G50 Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 097/119] drm/amdgpu: Bail earlier when amdgpu.cik_/si_support is not set to 1 Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 098/119] drivers/base/memory.c: dont access uninitialized memmaps in soft_offline_page_store() Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 099/119] fs/proc/page.c: dont access uninitialized memmaps in fs/proc/page.c Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 100/119] scsi: zfcp: fix reaction on bit error threshold notification Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 101/119] mm/slub: fix a deadlock in show_slab_objects() Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 102/119] mm/page_owner: dont access uninitialized memmaps when reading /proc/pagetypeinfo Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 103/119] hugetlbfs: dont access uninitialized memmaps in pfn_range_valid_gigantic() Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 104/119] xtensa: drop EXPORT_SYMBOL for outs*/ins* Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 105/119] parisc: Fix vmap memory leak in ioremap()/iounmap() Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 106/119] CIFS: avoid using MID 0xFFFF Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 107/119] x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 108/119] pinctrl: armada-37xx: fix control of pins 32 and up Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 109/119] pinctrl: armada-37xx: swap polarity on LED group Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 110/119] btrfs: block-group: Fix a memory leak due to missing btrfs_put_block_group() Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 111/119] memstick: jmb38x_ms: Fix an error handling path in jmb38x_ms_probe() Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 112/119] cpufreq: Avoid cpufreq_suspend() deadlock on system shutdown Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 113/119] xen/netback: fix error path of xenvif_connect_data() Greg Kroah-Hartman
2019-10-27 21:01 ` Greg Kroah-Hartman [this message]
2019-10-27 21:01 ` [PATCH 4.14 115/119] KVM: X86: introduce invalidate_gpa argument to tlb flush Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 116/119] kvm: vmx: Introduce lapic_mode enumeration Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 117/119] kvm: apic: Flush TLB after APIC mode/address change if VPIDs are in use Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 118/119] kvm: vmx: Basic APIC virtualization controls have three settings Greg Kroah-Hartman
2019-10-27 21:01 ` [PATCH 4.14 119/119] RDMA/cxgb4: Do not dma memory off of the stack Greg Kroah-Hartman
2019-10-28  2:35 ` [PATCH 4.14 000/119] 4.14.151-stable review kernelci.org bot
2019-10-28  5:59 ` Didik Setiawan
2019-10-28 13:35 ` Guenter Roeck
2019-10-28 21:39 ` Jon Hunter
2019-10-29  7:15 ` Naresh Kamboju

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191027203349.766791277@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=bhelgaas@google.com \
    --cc=drake@endlessm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).