At least some real-world controllers expect the endpoint count in the
inctx to be accurate, so set it to the pipe currently being activated.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
goto fail;
in->add |= (1 << pipe->epid);
struct xhci_slotctx *slot = (void*)&in[1 << xhci->context64];
- slot->ctx[0] |= (31 << 27); // context entries
+ slot->ctx[0] = (slot->ctx[0] & ~0xf8000000) | (pipe->epid << 27);
struct xhci_epctx *ep = (void*)&in[(pipe->epid+1) << xhci->context64];
if (eptype == USB_ENDPOINT_XFER_INT)