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 v4 0/9] PCI/PM: Always disable PTM for all devices during suspend
Date: Fri, 9 Sep 2022 15:24:56 -0500 [thread overview]
Message-ID: <20220909202505.314195-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
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
next reply other threads:[~2022-09-09 20:25 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-09 20:24 Bjorn Helgaas [this message]
2022-09-09 20:24 ` [PATCH v4 1/9] PCI/PTM: Cache PTM Capability offset Bjorn Helgaas
2022-09-09 23:38 ` Sathyanarayanan Kuppuswamy
2022-09-09 20:24 ` [PATCH v4 2/9] PCI/PTM: Add pci_upstream_ptm() helper Bjorn Helgaas
2022-09-09 23:38 ` Sathyanarayanan Kuppuswamy
2022-09-09 20:24 ` [PATCH v4 3/9] PCI/PTM: Separate configuration and enable Bjorn Helgaas
2022-09-09 20:25 ` [PATCH v4 4/9] PCI/PTM: Add pci_suspend_ptm() and pci_resume_ptm() Bjorn Helgaas
2022-09-09 23:44 ` Sathyanarayanan Kuppuswamy
2022-09-09 20:25 ` [PATCH v4 5/9] PCI/PTM: Move pci_ptm_info() body into its only caller Bjorn Helgaas
2022-09-09 23:45 ` Sathyanarayanan Kuppuswamy
2022-09-09 20:25 ` [PATCH v4 6/9] PCI/PTM: Preserve RsvdP bits in PTM Control register Bjorn Helgaas
2022-09-09 23:46 ` Sathyanarayanan Kuppuswamy
2022-09-09 20:25 ` [PATCH v4 7/9] PCI/PTM: Reorder functions in logical order Bjorn Helgaas
2022-09-09 20:25 ` [PATCH v4 8/9] PCI/PTM: Consolidate PTM interface declarations Bjorn Helgaas
2022-09-09 20:25 ` [PATCH v4 9/9] PCI/PM: Always disable PTM for all devices during suspend Bjorn Helgaas
2022-09-12 4:16 ` [PATCH v4 0/9] " Mika Westerberg
2022-09-12 20:36 ` Bjorn Helgaas
2022-09-13 8:13 ` Rafael J. Wysocki
[not found] <e58cbb3c-fcfe-edaa-f8ac-5cf502ea62a6@linux.intel.com>
2022-09-12 20:32 ` 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=20220909202505.314195-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox