From cadaf7583f22c6ca1798210d97d3c4293396e420 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Sat, 4 Sep 2021 13:12:12 -0400 Subject: [PATCH] XHCI: Resolve TODO about referencing the specification in isochronous handling. --- src/add-ons/kernel/busses/usb/xhci.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/busses/usb/xhci.cpp b/src/add-ons/kernel/busses/usb/xhci.cpp index 957b988e1c..ba31dc15f9 100644 --- a/src/add-ons/kernel/busses/usb/xhci.cpp +++ b/src/add-ons/kernel/busses/usb/xhci.cpp @@ -872,8 +872,9 @@ XHCI::SubmitNormalRequest(Transfer *transfer) uint32 frame; if ((isochronousData->flags & USB_ISO_ASAP) != 0 || isochronousData->starting_frame_number == NULL) { + // All reads from the microframe index register must be + // incremented by 1. (XHCI 1.2 ยง 4.14.2.1.4 p265.) frame = ReadRunReg32(XHCI_MFINDEX) + 1; - // TODO: The +1 comes from the XHCI spec; document that. td->trbs[0].flags |= TRB_3_ISO_SIA_BIT; } else { frame = *isochronousData->starting_frame_number;