Skip to content

Commit

Permalink
usb: xhci: drop and add the endpoint context in xhci_fixup_endpoint()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
P33M authored and popcornmix committed Oct 2, 2024
1 parent a1754b1 commit 6e0d330
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/usb/host/xhci.c
Original file line number Diff line number Diff line change
Expand Up @@ -1626,7 +1626,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);

Expand Down

0 comments on commit 6e0d330

Please sign in to comment.