david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[xhci] Ring doorbell as part of endpoint reset

The endpoint may already have enqueued TRBs at the time that
xhci_endpoint_reset() is called.  Ring the doorbell to resume
processing these TRBs immediately, rather than waiting until the next
call to xhci_endpoint_message() or xhci_endpoint_stream().

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2015-03-23 14:22:23 +00:00
parent a3c00d8d3b
commit 661189eede
1 changed files with 3 additions and 0 deletions

View File

@ -2437,6 +2437,9 @@ static int xhci_endpoint_reset ( struct usb_endpoint *ep ) {
if ( ( rc = xhci_set_tr_dequeue_pointer ( xhci, slot, endpoint ) ) != 0)
return rc;
/* Ring doorbell to resume processing */
xhci_doorbell ( &endpoint->ring );
DBGC ( xhci, "XHCI %p slot %d ctx %d reset\n",
xhci, slot->id, endpoint->ctx );
return 0;