mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From c14692eed1bd6b8c2400526bf6f406d86a103a31 Mon Sep 17 00:00:00 2001
 | 
						|
From: Jonathan Bell <jonathan@raspberrypi.com>
 | 
						|
Date: Fri, 10 Mar 2023 14:21:42 +0000
 | 
						|
Subject: [PATCH] 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
 | 
						|
@@ -1730,7 +1730,7 @@ static void xhci_fixup_endpoint(struct u
 | 
						|
 		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);
 | 
						|
 
 |