Commit e276d281 authored by Hans Petter Selasky's avatar Hans Petter Selasky
Browse files

xhci(4): Only drop BULK and INTERRUPT endpoints to reset data toggle.

Only drop BULK and INTERRUPT endpoints, to reset the data toggle,
because for other endpoint types this is not critical.

Tested by:	ehaupt@
PR:		262882
MFC after:	3 hours
Sponsored by:	NVIDIA Networking
parent 70910e4b
......@@ -3848,9 +3848,16 @@ xhci_configure_reset_endpoint(struct usb_xfer *xfer)
mask = (1U << epno);
if (epno != 1 && drop != 0) {
/*
* So-called control and isochronous transfer types have
* predefined data toggles (USB 2.0) or sequence numbers (USB
* 3.0) and does not need to be dropped.
*/
if (drop != 0 &&
(edesc->bmAttributes & UE_XFERTYPE) != UE_CONTROL &&
(edesc->bmAttributes & UE_XFERTYPE) != UE_ISOCHRONOUS) {
/* drop endpoint context to reset data toggle value, if any. */
xhci_configure_mask(udev, mask, 1);
xhci_configure_mask(udev, mask, 1);
err = xhci_cmd_configure_ep(sc, buf_inp.physaddr, 0, index);
if (err != 0) {
DPRINTF("Could not drop "
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment