From: Lukas Wunner <lukas@wunner.de>
To: Mario Limonciello <mario.limonciello@amd.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
"Rafael J . Wysocki" <rjw@rjwysocki.net>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Hans de Goede <hdegoede@redhat.com>,
Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
"open list:X86 PLATFORM DRIVERS"
<platform-driver-x86@vger.kernel.org>,
"open list:PCI SUBSYSTEM" <linux-pci@vger.kernel.org>,
linux-pm@vger.kernel.org,
"open list:USB XHCI DRIVER" <linux-usb@vger.kernel.org>,
iain@orangesquash.org.uk
Subject: Re: [PATCH v18 2/2] PCI: Add a quirk for AMD PCIe root ports w/ USB4 controllers
Date: Thu, 14 Sep 2023 16:53:32 +0200 [thread overview]
Message-ID: <20230914145332.GA5261@wunner.de> (raw)
In-Reply-To: <1db16da9-568d-4492-8b2c-cdabf7a18f3b@amd.com>
On Thu, Sep 14, 2023 at 09:31:38AM -0500, Mario Limonciello wrote:
> On 9/14/2023 09:17, Lukas Wunner wrote:
> > On Wed, Sep 13, 2023 at 11:36:49AM -0500, Mario Limonciello wrote:
> > > On 9/13/2023 09:31, Lukas Wunner wrote:
> > > > If this only affects system sleep, not runtime PM, what you can do is
> > > > define a DECLARE_PCI_FIXUP_SUSPEND_LATE() which calls pci_d3cold_disable()
> > > > and also define a DECLARE_PCI_FIXUP_CLASS_RESUME_EARLY() which calls
> > > > pci_d3cold_enable().
> > > >
> > > > And I think you can make those calls conditional on pm_suspend_no_platform()
> > > > to constrain to s2idle.
> > > >
> > > > User space should still be able to influence runtime PM via the
> > > > d3cold_allowed flag (unless I'm missing something).
> > >
> > > The part you're missing is that D3hot is affected by this issue too,
> > > otherwise it would be a good proposal.
> >
> > I recall that in an earlier version of the patch, you solved the issue
> > by amending pci_bridge_d3_possible().
> >
> > Changing the dev->no_d3cold flag indirectly influences the bridge_d3
> > flag (through pci_dev_check_d3cold() and pci_bridge_d3_update()).
> >
> > If dev->no_d3cold is set on a device below a port, that port is
> > prevented from entring D3hot because it would result in the
> > device effectively being in D3cold.
> >
> > So you might want to take a closer look at this approach despite
> > the flag suggesting that it only influences D3cold.
> >
>
> Ah; I hadn't considered setting it on a device below the port. In this
> particular situation the only devices below the root port are USB
> controllers.
>
> If those devices don't go into D3 the system can't enter hardware sleep.
If you set dev->no_d3cold on the USB controllers, they should still
be able to go to D3hot, but not D3cold, which perhaps might be sufficient.
It should prevent D3cold *and* D3hot on the Root Port above. And if you
set that on system sleep in a quirk and clear it on resume, runtime PM
shouldn't be affected.
Thanks,
Lukas
next prev parent reply other threads:[~2023-09-14 14:53 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-13 4:08 [PATCH v18 0/2] Add quirk for PCIe root port on AMD systems Mario Limonciello
2023-09-13 4:08 ` [PATCH v18 1/2] PCI: Move the `PCI_CLASS_SERIAL_USB_USB4` definition to common header Mario Limonciello
2023-09-13 10:34 ` Mika Westerberg
2023-09-13 4:08 ` [PATCH v18 2/2] PCI: Add a quirk for AMD PCIe root ports w/ USB4 controllers Mario Limonciello
2023-09-13 4:25 ` Lukas Wunner
2023-09-13 4:43 ` Mario Limonciello
2023-09-13 8:14 ` Rafael J. Wysocki
2023-09-13 14:31 ` Lukas Wunner
2023-09-13 16:36 ` Mario Limonciello
2023-09-14 14:17 ` Lukas Wunner
2023-09-14 14:31 ` Mario Limonciello
2023-09-14 14:53 ` Lukas Wunner [this message]
2023-09-14 15:33 ` Bjorn Helgaas
2023-09-14 16:05 ` Rafael J. Wysocki
2023-09-14 19:04 ` Lukas Wunner
2023-09-14 19:09 ` Lukas Wunner
2023-09-13 9:56 ` kernel test robot
2023-09-13 10:17 ` kernel test robot
2023-09-13 10:20 ` Rafael J. Wysocki
2023-09-13 15:40 ` Bjorn Helgaas
2023-09-13 16:35 ` Mario Limonciello
2023-09-13 17:42 ` Rafael J. Wysocki
2023-09-13 21:05 ` Bjorn Helgaas
2023-09-13 21:16 ` Mario Limonciello
2023-09-14 4:59 ` Mario Limonciello
2023-09-14 12:32 ` Bjorn Helgaas
2023-09-14 13:57 ` Mario Limonciello
2023-09-15 0:55 ` Mario Limonciello
2023-09-15 1:24 ` 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=20230914145332.GA5261@wunner.de \
--to=lukas@wunner.de \
--cc=Shyam-sundar.S-k@amd.com \
--cc=bhelgaas@google.com \
--cc=hdegoede@redhat.com \
--cc=iain@orangesquash.org.uk \
--cc=linux-pci@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=mika.westerberg@linux.intel.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rjw@rjwysocki.net \
/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.