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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>

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(-)

-- 
2.25.1




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux