Skip to content

Commit 69831a7

Browse files
Prashanth Ksmb49
authored andcommitted
usb: dwc3: host: Set XHCI_SG_TRB_CACHE_SIZE_QUIRK
BugLink: https://bugs.launchpad.net/bugs/2059014 commit 817349b upstream. Upstream commit bac1ec5 ("usb: xhci: Set quirk for XHCI_SG_TRB_CACHE_SIZE_QUIRK") introduced a new quirk in XHCI which fixes XHC timeout, which was seen on synopsys XHCs while using SG buffers. But the support for this quirk isn't present in the DWC3 layer. We will encounter this XHCI timeout/hung issue if we run iperf loopback tests using RTL8156 ethernet adaptor on DWC3 targets with scatter-gather enabled. This gets resolved after enabling the XHCI_SG_TRB_CACHE_SIZE_QUIRK. This patch enables it using the xhci device property since its needed for DWC3 controller. In Synopsys DWC3 databook, Table 9-3: xHCI Debug Capability Limitations Chained TRBs greater than TRB cache size: The debug capability driver must not create a multi-TRB TD that describes smaller than a 1K packet that spreads across 8 or more TRBs on either the IN TR or the OUT TR. Cc: [email protected] #5.11 Signed-off-by: Prashanth K <[email protected]> Acked-by: Thinh Nguyen <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Manuel Diewald <[email protected]> Signed-off-by: Stefan Bader <[email protected]>
1 parent d320fd1 commit 69831a7

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

drivers/usb/dwc3/host.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ static int dwc3_host_get_irq(struct dwc3 *dwc)
4444

4545
int dwc3_host_init(struct dwc3 *dwc)
4646
{
47-
struct property_entry props[4];
47+
struct property_entry props[5];
4848
struct platform_device *xhci;
4949
int ret, irq;
5050
struct resource *res;
@@ -89,6 +89,8 @@ int dwc3_host_init(struct dwc3 *dwc)
8989

9090
memset(props, 0, sizeof(struct property_entry) * ARRAY_SIZE(props));
9191

92+
props[prop_idx++] = PROPERTY_ENTRY_BOOL("xhci-sg-trb-cache-size-quirk");
93+
9294
if (dwc->usb3_lpm_capable)
9395
props[prop_idx++] = PROPERTY_ENTRY_BOOL("usb3-lpm-capable");
9496

0 commit comments

Comments
 (0)