Skip to content

PCI/PM: Always disable PTM for all devices during suspend

Bjorn Helgaas linux-pci linux-pm lkml 4 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest9 patches 8 repliesIn review
  2. v310 patches 11 repliesSuperseded
  3. v23 patches 6 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v14 patches6 repliesSuperseded

Changes in v4 from the cover letter

- Use u16 for ptm_cap
- Add kernel-doc for pci_enable_ptm() and pci_disable_ptm() (exported functions)
- Drop "Preserve PTM Root Select" (unnecessary since enabling PTM sets Root Select when needed)
- Squash these three patches into one because they make more sense that way:
PCI/PTM: Add suspend/resume
PCI/PTM: Add pci_enable_ptm() wrapper
PCI/PTM: Add pci_disable_ptm() wrapper
- Add "PCI/PTM: Preserve RsvdP bits in PTM Control register"
- Add "PCI/PTM: Consolidate PTM interface declarations"

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9PCI/PTM: Cache PTM Capability offsetdrivers/pci/pcie/ptm.c include/linux/pci.h+18 -241 reply
2/9PCI/PTM: Add pci_upstream_ptm() helperdrivers/pci/pcie/ptm.c+25 -141 reply
3/9PCI/PTM: Separate configuration and enabledrivers/pci/pcie/ptm.c+49 -550 replies
4/9PCI/PTM: Add pci_suspend_ptm() and pci_resume_ptm()drivers/pci/pci.c drivers/pci/pci.h drivers/pci/pcie/ptm.c +1 more+65 -181 reply
5/9PCI/PTM: Move pci_ptm_info() body into its only callerdrivers/pci/pcie/ptm.c+17 -211 reply
6/9PCI/PTM: Preserve RsvdP bits in PTM Control registerdrivers/pci/pcie/ptm.c+14 -111 reply
7/9PCI/PTM: Reorder functions in logical orderdrivers/pci/pcie/ptm.c+62 -620 replies
8/9PCI/PTM: Consolidate PTM interface declarationsdrivers/pci/pci.h+2 -60 replies
9/9PCI/PM: Always disable PTM for all devices during suspenddrivers/pci/pci-driver.c drivers/pci/pci.c+13 -260 replies

Reviews trailers per patch

4 of 9 patches have a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchKuppuswamy SathyanarayananMika Westerberg
SeriesR-b
1/9R-b
2/9R-b
3/9
4/9
5/9R-b
6/9R-b
7/9
8/9
9/9

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

Cover letter [PATCH v4 0/9] PCI/PM: Always disable PTM for all devices during suspend

From: Bjorn Helgaas <[email protected]>

We currently disable PTM for Root Ports during suspend. Leaving PTM enabled for downstream devices causes UR errors if they send PTM Requests to upstream devices that have PTM disabled.

The intent of this series is to:

- Unconditionally disable PTM during suspend (even if the driver saves its own state) by moving the disable from pci_prepare_to_sleep() to pci_pm_suspend().

- Disable PTM for all devices by removing the Root Port condition and doing it early in the suspend paths.

- Explicitly re-enable PTM during resume.

Changes between v3 and v4:
- Use u16 for ptm_cap
- Add kernel-doc for pci_enable_ptm() and pci_disable_ptm() (exported functions)
- Drop "Preserve PTM Root Select" (unnecessary since enabling PTM sets Root Select when needed)
- Squash these three patches into one because they make more sense that way:
PCI/PTM: Add suspend/resume
PCI/PTM: Add pci_enable_ptm() wrapper
PCI/PTM: Add pci_disable_ptm() wrapper
- Add "PCI/PTM: Preserve RsvdP bits in PTM Control register"
- Add "PCI/PTM: Consolidate PTM interface declarations"

Bjorn Helgaas (9):
PCI/PTM: Cache PTM Capability offset
PCI/PTM: Add pci_upstream_ptm() helper
PCI/PTM: Separate configuration and enable PCI/PTM: Add pci_suspend_ptm() and pci_resume_ptm() PCI/PTM: Move pci_ptm_info() body into its only caller PCI/PTM: Preserve RsvdP bits in PTM Control register PCI/PTM: Reorder functions in logical order PCI/PTM: Consolidate PTM interface declarations PCI/PM: Always disable PTM for all devices during suspend

 drivers/pci/pci-driver.c |  11 ++
 drivers/pci/pci.c        |  28 +--
 drivers/pci/pci.h        |  14 +-
 drivers/pci/pcie/ptm.c   | 384 +++++++++++++++++++++------------------
 include/linux/pci.h      |   3 +
 5 files changed, 234 insertions(+), 206 deletions(-)
Signature · 1 line
2.25.1