diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2013-12-29 18:17:57 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2014-01-29 12:57:01 -0500 |
commit | 81b64824dad0411473e752a66665c4a44c579f6e (patch) | |
tree | 6b0024d467b6243d36d42b9d25daed4946d7588d | |
parent | e3b9cadd9bef8fc94904c6e00d5ca3050def247b (diff) | |
download | seabios-81b64824dad0411473e752a66665c4a44c579f6e.zip seabios-81b64824dad0411473e752a66665c4a44c579f6e.tar.gz seabios-81b64824dad0411473e752a66665c4a44c579f6e.tar.bz2 |
xhci: Don't use a dummy endpoint count in configure command.
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>
-rw-r--r-- | src/hw/usb-xhci.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/hw/usb-xhci.c b/src/hw/usb-xhci.c index 9a1954c..6f5604e 100644 --- a/src/hw/usb-xhci.c +++ b/src/hw/usb-xhci.c @@ -922,7 +922,7 @@ xhci_alloc_pipe(struct usbdevice_s *usbdev 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) |