All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/10] PCI/PM: Always disable PTM for all devices during suspend
@ 2022-09-06 22:23 Bjorn Helgaas
  2022-09-06 22:23 ` [PATCH v3 01/10] PCI/PTM: Preserve PTM Root Select Bjorn Helgaas
                   ` (9 more replies)
  0 siblings, 10 replies; 22+ messages in thread
From: Bjorn Helgaas @ 2022-09-06 22:23 UTC (permalink / raw)
  To: Kai-Heng Feng, Rajvi Jingar, Rafael J . Wysocki
  Cc: Koba Ko, Mika Westerberg, David E . Box,
	Sathyanarayanan Kuppuswamy, linux-pci, linux-pm, linux-kernel,
	Bjorn Helgaas

From: Bjorn Helgaas <bhelgaas@google.com>

We currently disable PTM for Root Ports during suspend.  Leaving PTM
enabled for downstream devices causes UR errors if they send PTM Requests.
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.

This got long and pretty complicated to read via the patches.  The end
result of ptm.c might help as a roadmap to where I hoped to go:

  https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git/tree/drivers/pci/pcie/ptm.c?h=07c2204ab0f3

Basically I wanted to make pci_enable_ptm() and pci_disable_ptm() flip the
PCI_PTM_CTRL_ENABLE bit and nothing else, with all the setup based on the
PTM Capabilities register done in pci_ptm_init().

Bjorn Helgaas (10):
  PCI/PTM: Preserve PTM Root Select
  PCI/PTM: Cache PTM Capability offset
  PCI/PTM: Add pci_upstream_ptm() helper
  PCI/PTM: Separate configuration and enable
  PCI/PTM: Add pci_disable_ptm() wrapper
  PCI/PTM: Add pci_enable_ptm() wrapper
  PCI/PTM: Add suspend/resume
  PCI/PTM: Move pci_ptm_info() body into its only caller
  PCI/PTM: Reorder functions in logical order
  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        |   6 +-
 drivers/pci/pcie/ptm.c   | 317 ++++++++++++++++++++-------------------
 include/linux/pci.h      |   3 +
 5 files changed, 181 insertions(+), 184 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2022-09-08 20:58 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-06 22:23 [PATCH v3 00/10] PCI/PM: Always disable PTM for all devices during suspend Bjorn Helgaas
2022-09-06 22:23 ` [PATCH v3 01/10] PCI/PTM: Preserve PTM Root Select Bjorn Helgaas
2022-09-06 22:23 ` [PATCH v3 02/10] PCI/PTM: Cache PTM Capability offset Bjorn Helgaas
2022-09-06 23:18   ` Sathyanarayanan Kuppuswamy
2022-09-07 15:49     ` Bjorn Helgaas
2022-09-06 22:23 ` [PATCH v3 03/10] PCI/PTM: Add pci_upstream_ptm() helper Bjorn Helgaas
2022-09-06 22:23 ` [PATCH v3 04/10] PCI/PTM: Separate configuration and enable Bjorn Helgaas
2022-09-07  5:25   ` Mika Westerberg
2022-09-06 22:23 ` [PATCH v3 05/10] PCI/PTM: Add pci_disable_ptm() wrapper Bjorn Helgaas
2022-09-07  5:28   ` Mika Westerberg
2022-09-07 21:12     ` Bjorn Helgaas
2022-09-06 22:23 ` [PATCH v3 06/10] PCI/PTM: Add pci_enable_ptm() wrapper Bjorn Helgaas
2022-09-07  5:29   ` Mika Westerberg
2022-09-08 20:18   ` Sathyanarayanan Kuppuswamy
2022-09-06 22:23 ` [PATCH v3 07/10] PCI/PTM: Add suspend/resume Bjorn Helgaas
2022-09-07  5:30   ` Mika Westerberg
2022-09-07 16:44     ` Bjorn Helgaas
2022-09-06 22:23 ` [PATCH v3 08/10] PCI/PTM: Move pci_ptm_info() body into its only caller Bjorn Helgaas
2022-09-06 22:23 ` [PATCH v3 09/10] PCI/PTM: Reorder functions in logical order Bjorn Helgaas
2022-09-08 20:15   ` Sathyanarayanan Kuppuswamy
2022-09-08 20:58     ` Bjorn Helgaas
2022-09-06 22:23 ` [PATCH v3 10/10] PCI/PM: Always disable PTM for all devices during suspend Bjorn Helgaas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.