|
@@ -2119,6 +2119,8 @@ static void xhci_kick_epctx(XHCIEPContext *epctx, unsigned int streamid)
|
|
}
|
|
}
|
|
assert(!xfer->running_retry);
|
|
assert(!xfer->running_retry);
|
|
if (xfer->complete) {
|
|
if (xfer->complete) {
|
|
|
|
+ /* update ring dequeue ptr */
|
|
|
|
+ xhci_set_ep_state(xhci, epctx, stctx, epctx->state);
|
|
xhci_ep_free_xfer(epctx->retry);
|
|
xhci_ep_free_xfer(epctx->retry);
|
|
}
|
|
}
|
|
epctx->retry = NULL;
|
|
epctx->retry = NULL;
|
|
@@ -2169,6 +2171,8 @@ static void xhci_kick_epctx(XHCIEPContext *epctx, unsigned int streamid)
|
|
xhci_fire_transfer(xhci, xfer, epctx);
|
|
xhci_fire_transfer(xhci, xfer, epctx);
|
|
}
|
|
}
|
|
if (xfer->complete) {
|
|
if (xfer->complete) {
|
|
|
|
+ /* update ring dequeue ptr */
|
|
|
|
+ xhci_set_ep_state(xhci, epctx, stctx, epctx->state);
|
|
xhci_ep_free_xfer(xfer);
|
|
xhci_ep_free_xfer(xfer);
|
|
xfer = NULL;
|
|
xfer = NULL;
|
|
}
|
|
}
|
|
@@ -2186,8 +2190,6 @@ static void xhci_kick_epctx(XHCIEPContext *epctx, unsigned int streamid)
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- /* update ring dequeue ptr */
|
|
|
|
- xhci_set_ep_state(xhci, epctx, stctx, epctx->state);
|
|
|
|
epctx->kick_active--;
|
|
epctx->kick_active--;
|
|
|
|
|
|
ep = xhci_epid_to_usbep(epctx);
|
|
ep = xhci_epid_to_usbep(epctx);
|