Re: [PATCH v1] xhci: Disable stream for xHC controller with XHCI_BROKEN_STREAMS

From: xiehongyu1
Date: Wed Jun 18 2025 - 03:21:57 EST


From: Hongyu Xie <xiehongyu1@xxxxxxxxxx>

Hi greg

在 2025/6/18 14:03, Greg KH 写道:
On Wed, Jun 18, 2025 at 01:51:33PM +0800,xiehongyu1@xxxxxxxxxx wrote:
From: Hongyu Xie<xiehongyu1@xxxxxxxxxx>

Disable stream for platform xHC controller with broken stream.

Signed-off-by: Hongyu Xie<xiehongyu1@xxxxxxxxxx>
---
drivers/usb/host/xhci-plat.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index 6dab142e72789..c79d5ed48a08b 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -328,7 +328,8 @@ int xhci_plat_probe(struct platform_device *pdev, struct device *sysdev, const s
}
usb3_hcd = xhci_get_usb3_hcd(xhci);
- if (usb3_hcd && HCC_MAX_PSA(xhci->hcc_params) >= 4)
+ if (usb3_hcd && HCC_MAX_PSA(xhci->hcc_params) >= 4 &&
+ !(xhci->quirks & XHCI_BROKEN_STREAMS))
usb3_hcd->can_do_streams = 1;
if (xhci->shared_hcd) {
--
2.25.1


Should this be backported to stable kernels? if so, how far back?
At least 5.4 lts.
What commit id does this fix? Or what hardware does this fix?

I'm not sure. can_do_streams was introduced by 14aec589327a6 ("storage: accept some UAS devices if streams are unavailable") in Feb 11 20:36:04 2014 before

XHCI_BROKEN_STREAMS was introduced by 8f873c1ff4ca0 ("xhci: Blacklist using streams on the Etron EJ168 controller") in Fri Jul 25 22:01:18 2014.

thanks,

greg k-h