Be sure to set the interval parameter when creating an interrupt based pipe.
Signed-off-by: Kevin O'Connor kevin@koconnor.net --- src/hw/usb-xhci.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/src/hw/usb-xhci.c b/src/hw/usb-xhci.c index 0833cb9..b10fceb 100644 --- a/src/hw/usb-xhci.c +++ b/src/hw/usb-xhci.c @@ -895,6 +895,8 @@ xhci_alloc_pipe(struct usbdevice_s *usbdev in->slot.ctx[0] |= (31 << 27); // context entries
int e = pipe->epid-1; + if (eptype == USB_ENDPOINT_XFER_INT) + in->ep[e].ctx[0] = (usb_getFrameExp(usbdev, epdesc) + 3) << 16; in->ep[e].ctx[1] |= (eptype << 3); if (epdesc->bEndpointAddress & USB_DIR_IN) in->ep[e].ctx[1] |= (1 << 5);