From 36619da03ee2062d8af81f272392ce935e980e79 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Fri, 10 Mar 2023 14:21:42 +0000 Subject: [PATCH 707/726] usb: xhci: drop and add the endpoint context in xhci_fixup_endpoint() Setting both the Drop and Add bits on the input context prevents the corruption of split transactions seen with the BCM2711 XHCI controller, which is a dwc3 variant. This is a downstream feature that allows usbhid to restrict polling intervals on mice and keyboards, and was only tested on a VL805 which didn't complain about the fact the endpoint got added twice. Signed-off-by: Jonathan Bell --- drivers/usb/host/xhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 3e7ca9058df3..b9f51c3c97c5 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -1726,7 +1726,7 @@ static void xhci_fixup_endpoint(struct usb_hcd *hcd, struct usb_device *udev, return; } ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index); - ctrl_ctx->drop_flags = 0; + ctrl_ctx->drop_flags = ctrl_ctx->add_flags; spin_unlock_irqrestore(&xhci->lock, flags); -- 2.33.1