From: superm1@kernel.org
To: Bjorn Helgaas <bhelgaas@google.com>,
Mathias Nyman <mathias.nyman@intel.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: "open list : PCI SUBSYSTEM" <linux-pci@vger.kernel.org>,
open list <linux-kernel@vger.kernel.org>,
"open list : USB XHCI DRIVER" <linux-usb@vger.kernel.org>,
Daniel Drake <drake@endlessos.org>, Gary Li <Gary.Li@amd.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Mario Limonciello <mario.limonciello@amd.com>
Subject: [PATCH v3 0/5] Verify devices transition from D3cold to D0
Date: Fri, 12 Jul 2024 13:12:41 -0500 [thread overview]
Message-ID: <20240712181246.811044-1-superm1@kernel.org> (raw)
From: Mario Limonciello <mario.limonciello@amd.com>
Gary has reported that when a dock is plugged into a system at the same
time the autosuspend delay has tripped that the USB4 stack malfunctions.
Messages show up like this:
```
thunderbolt 0000:e5:00.6: ring_interrupt_active: interrupt for TX ring 0 is already enabled
```
Furthermore the USB4 router is non-functional at this point.
Those messages happen because the device is still in D3cold at the time
that the PCI core handed control back to the USB4 connection manager
(thunderbolt).
The issue is that it takes time for a device to enter D3cold and do a
conventional reset, and then more time for it to exit D3cold.
This appears not to be a new problem; previously there were very similar
reports from Ryzen XHCI controllers. Quirks were added for those.
Furthermore; adding extra logging it's apparent that other PCI devices
in the system can take more than 10ms to recover from D3cold as well.
This series add a wait into pci_power_up() specifically for D3cold exit and
then drops the quirks that were previously used for the Ryzen XHCI controllers.
v2->v3:
* Add an enum for reset types and pass that instead.
v1->v2:
* Add a fix for a suspend problem
Mario Limonciello (5):
PCI: Use an enum for reset type in pci_dev_wait()
PCI: Check PCI_PM_CTRL instead of PCI_COMMAND in pci_dev_wait()
PCI: Verify functions currently in D3cold have entered D0
PCI: Allow Ryzen XHCI controllers into D3cold and drop delays
PCI: Drop Radeon quirk for Macbook Pro 8.2
drivers/pci/pci-driver.c | 2 +-
drivers/pci/pci.c | 68 +++++++++++++++++++++++++++----------
drivers/pci/pci.h | 12 ++++++-
drivers/pci/pcie/dpc.c | 2 +-
drivers/pci/quirks.c | 25 --------------
drivers/usb/host/xhci-pci.c | 11 ------
6 files changed, 63 insertions(+), 57 deletions(-)
--
2.43.0
next reply other threads:[~2024-07-12 18:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-12 18:12 superm1 [this message]
2024-07-12 18:12 ` [PATCH v3 1/5] PCI: Use an enum for reset type in pci_dev_wait() superm1
2024-07-15 12:36 ` Ilpo Järvinen
2024-07-12 18:12 ` [PATCH v3 2/5] PCI: Check PCI_PM_CTRL instead of PCI_COMMAND " superm1
2024-07-12 18:12 ` [PATCH v3 3/5] PCI: Verify functions currently in D3cold have entered D0 superm1
2024-07-12 18:12 ` [PATCH v3 4/5] PCI: Allow Ryzen XHCI controllers into D3cold and drop delays superm1
2024-07-12 18:12 ` [PATCH v3 5/5] PCI: Drop Radeon quirk for Macbook Pro 8.2 superm1
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=20240712181246.811044-1-superm1@kernel.org \
--to=superm1@kernel.org \
--cc=Gary.Li@amd.com \
--cc=bhelgaas@google.com \
--cc=drake@endlessos.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=mathias.nyman@intel.com \
--cc=mika.westerberg@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