Message ID | 20220909202505.314195-1-helgaas@kernel.org |
---|---|
Headers | show |
Series | PCI/PM: Always disable PTM for all devices during suspend | expand |
On Fri, Sep 09, 2022 at 03:24:56PM -0500, Bjorn Helgaas wrote: > 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 For the whole series, Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
On Mon, Sep 12, 2022 at 07:16:23AM +0300, Mika Westerberg wrote: > On Fri, Sep 09, 2022 at 03:24:56PM -0500, Bjorn Helgaas wrote: > > 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 > > For the whole series, > > Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Thank you very much, Mika, Kuppuswamy, and Rajvi for your effort in reviewing and testing these. I know that's a lot of work, and I really appreciate it. I put these on pci/pm together with Rajvi's pci_pm_suspend_noirq() simplification for v6.1. Bjorn
On Mon, Sep 12, 2022 at 10:36 PM Bjorn Helgaas <helgaas@kernel.org> wrote: > > On Mon, Sep 12, 2022 at 07:16:23AM +0300, Mika Westerberg wrote: > > On Fri, Sep 09, 2022 at 03:24:56PM -0500, Bjorn Helgaas wrote: > > > 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 > > > > For the whole series, > > > > Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> > > Thank you very much, Mika, Kuppuswamy, and Rajvi for your effort in > reviewing and testing these. I know that's a lot of work, and I > really appreciate it. > > I put these on pci/pm together with Rajvi's pci_pm_suspend_noirq() > simplification for v6.1. Awesome, thanks!
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(-)