summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/drivers/usb/xhci.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/drivers/usb/xhci.c b/src/drivers/usb/xhci.c
index 67de0a832..48ac6a307 100644
--- a/src/drivers/usb/xhci.c
+++ b/src/drivers/usb/xhci.c
@@ -2606,6 +2606,12 @@ static int xhci_endpoint_stream ( struct usb_endpoint *ep,
len -= trb_len;
trb++;
}
+
+ /* Mark zero-length packet (if present) as a separate transfer */
+ if ( zlp && ( count > 1 ) )
+ trb[-2].normal.flags = 0;
+
+ /* Generate completion for final TRB */
trb[-1].normal.flags = XHCI_TRB_IOC;
/* Enqueue TRBs */