summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrashanth K <quic_prashk@quicinc.com>2024-01-16 11:28:16 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-01-27 16:28:23 -0800
commit520b391e3e813c1dd142d1eebb3ccfa6d08c3995 (patch)
treecc0275c84f183bc584a78f7c27f26f99d431dd70
parent817349b6d26aadd8b38283a05ce0bab106b4c765 (diff)
downloadlinux-stable-520b391e3e813c1dd142d1eebb3ccfa6d08c3995.tar.gz
linux-stable-520b391e3e813c1dd142d1eebb3ccfa6d08c3995.tar.bz2
linux-stable-520b391e3e813c1dd142d1eebb3ccfa6d08c3995.zip
usb: host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK
Upstream commit bac1ec551434 ("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. Currently this quirk can only be set using xhci private data. But there are some drivers like dwc3/host.c which adds adds quirks using software node for xhci device. Hence set this xhci quirk by iterating over device properties. Cc: stable@vger.kernel.org # 5.11 Fixes: bac1ec551434 ("usb: xhci: Set quirk for XHCI_SG_TRB_CACHE_SIZE_QUIRK") Signed-off-by: Prashanth K <quic_prashk@quicinc.com> Link: https://lore.kernel.org/r/20240116055816.1169821-3-quic_prashk@quicinc.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/host/xhci-plat.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index f04fde19f551..3d071b875308 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -253,6 +253,9 @@ int xhci_plat_probe(struct platform_device *pdev, struct device *sysdev, const s
if (device_property_read_bool(tmpdev, "quirk-broken-port-ped"))
xhci->quirks |= XHCI_BROKEN_PORT_PED;
+ if (device_property_read_bool(tmpdev, "xhci-sg-trb-cache-size-quirk"))
+ xhci->quirks |= XHCI_SG_TRB_CACHE_SIZE_QUIRK;
+
device_property_read_u32(tmpdev, "imod-interval-ns",
&xhci->imod_interval);
}