All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Kai-Heng Feng <kai.heng.feng@canonical.com>,
	Rajvi Jingar <rajvi.jingar@linux.intel.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>
Cc: Koba Ko <koba.ko@canonical.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	"David E . Box" <david.e.box@linux.intel.com>,
	Sathyanarayanan Kuppuswamy 
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	linux-pci@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>
Subject: [PATCH v3 00/10] PCI/PM: Always disable PTM for all devices during suspend
Date: Tue,  6 Sep 2022 17:23:41 -0500	[thread overview]
Message-ID: <20220906222351.64760-1-helgaas@kernel.org> (raw)

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


             reply	other threads:[~2022-09-06 22:24 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-06 22:23 Bjorn Helgaas [this message]
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

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=20220906222351.64760-1-helgaas@kernel.org \
    --to=helgaas@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=david.e.box@linux.intel.com \
    --cc=kai.heng.feng@canonical.com \
    --cc=koba.ko@canonical.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rafael@kernel.org \
    --cc=rajvi.jingar@linux.intel.com \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    /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 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.