Re: [PATCH 0/4] Verify devices transition from D3cold to D0

Mario Limonciello
2024-07-09T03:07:09Z

On 6/13/2024 0:42, Mario Limonciello wrote:
> 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.
>
> Mario Limonciello (4):
> 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.c | 21 ++++++++++++++++-----
> drivers/pci/quirks.c | 25 -------------------------
> drivers/usb/host/xhci-pci.c | 11 -----------
> 3 files changed, 16 insertions(+), 41 deletions(-)
>

Bjorn, Mathias,

Any feedback for this series? I did check and it still applies to
6.10-rc7 as is, but if you want me to rebase on linux-pci happy to do so.

At least Mika and I seem in agreement from other comments in the thread
on this directionally.

Thanks,