2024-05-10 11:19:19 +00:00
|
|
|
From 3332d0fc788ad59620b58e0da94f734b337775ce Mon Sep 17 00:00:00 2001
|
|
|
|
From: Jonathan Bell <jonathan@raspberrypi.com>
|
|
|
|
Date: Fri, 10 Mar 2023 14:21:42 +0000
|
|
|
|
Subject: [PATCH 0163/1085] 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 <jonathan@raspberrypi.com>
|
|
|
|
---
|
|
|
|
drivers/usb/host/xhci.c | 2 +-
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
|
|
--- a/drivers/usb/host/xhci.c
|
|
|
|
+++ b/drivers/usb/host/xhci.c
|
2024-07-18 20:15:36 +00:00
|
|
|
@@ -1586,7 +1586,7 @@ static void xhci_fixup_endpoint(struct u
|
2024-05-10 11:19:19 +00:00
|
|
|
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);
|
|
|
|
|