All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] usb: xhci: add xhci-no-soft-retry-quirk
@ 2026-08-29 20:04 ` Matt Eaton via B4 Relay
  0 siblings, 0 replies; 14+ messages in thread
From: Matt Eaton @ 2026-08-29 20:04 UTC (permalink / raw)
  To: Mathias Nyman, Greg Kroah-Hartman, Thinh Nguyen
  Cc: linux-usb, linux-kernel, linux-arm-msm, Matt Eaton

The dwc3 instances on Qualcomm IPQ4019 mishandle xHCI 1.0 Soft Retry. A
Stop Endpoint command landing on a just-soft-retry-reset endpoint wedges
the command ring, and the stop-endpoint watchdog kills the host five
seconds later. Reproducible by unplugging a USB-tethered phone
mid-transfer; the port stays dead until the platform device is rebound.

XHCI_NO_SOFT_RETRY already exists for this class of defect but is only
reachable from xhci-pci, matched against two AMD Promontory PCI ids.

Patch 1 adds a device property so platform hosts can request it. Patch 2
carries it through the dwc3 core as a software property. Patch 3 sets it
from the qcom glue on the SoC compatible.

The match entry in patch 3 has no effect until the ipq4019 devicetree
moves to the qcom,snps-dwc3 glue, sent separately:
https://lore.kernel.org/r/20260829-ipq4019-dwc3-migration-v1-0-cc66b54ce21c@divinehawk.com

This series applies and builds independently of that.

Tested on a Ubiquiti UniFi Travel Router.

Signed-off-by: Matt Eaton <linux@divinehawk.com>
---
Changes in v2:
- Drop the dt-bindings patch; Krzysztof pointed out this is implied by
  compatible and shouldn't be a devicetree property.
- Set the quirk from the dwc3 core instead, via a new dwc3_properties
  field carried as match data in the qcom glue, per Thinh's review.
- Link to v1: https://lore.kernel.org/r/20260828-xhci-no-soft-retry-v1-0-b9c264b56601@divinehawk.com

---
Matt Eaton (3):
      usb: xhci-plat: add xhci-no-soft-retry-quirk device property
      usb: dwc3: add xhci_no_soft_retry software property
      usb: dwc3: qcom: set xhci_no_soft_retry for IPQ4019

 drivers/usb/dwc3/core.c      |  3 +++
 drivers/usb/dwc3/core.h      |  3 +++
 drivers/usb/dwc3/dwc3-qcom.c | 17 ++++++++++++++++-
 drivers/usb/dwc3/glue.h      |  3 +++
 drivers/usb/dwc3/host.c      |  5 ++++-
 drivers/usb/host/xhci-plat.c |  3 +++
 6 files changed, 32 insertions(+), 2 deletions(-)
---
base-commit: 45c13f3f9e3bb15fd89ff2864c6f627a3b4b4229
change-id: 20260828-xhci-no-soft-retry-4af6c93dc7d2

Best regards,
--  
Matt Eaton <linux@divinehawk.com>


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2026-09-02  2:42 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-29 20:04 [PATCH v2 0/3] usb: xhci: add xhci-no-soft-retry-quirk Matt Eaton
2026-08-29 20:04 ` Matt Eaton via B4 Relay
2026-08-29 20:04 ` [PATCH v2 1/3] usb: xhci-plat: add xhci-no-soft-retry-quirk device property Matt Eaton
2026-08-29 20:04   ` Matt Eaton via B4 Relay
2026-08-30 15:02   ` Michal Pecio
2026-08-31  0:58     ` Matt Eaton
2026-08-31  3:38       ` Michal Pecio
2026-08-31 17:00         ` Matt Eaton
2026-09-02  2:42       ` Thinh Nguyen
2026-08-29 20:04 ` [PATCH v2 2/3] usb: dwc3: add xhci_no_soft_retry software property Matt Eaton
2026-08-29 20:04   ` Matt Eaton via B4 Relay
2026-08-30  9:33   ` Matt Eaton
2026-08-29 20:04 ` [PATCH v2 3/3] usb: dwc3: qcom: set xhci_no_soft_retry for IPQ4019 Matt Eaton
2026-08-29 20:04   ` Matt Eaton via B4 Relay

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.