Skip to content

Commit

Permalink
[xhci] Ring doorbell as part of endpoint reset
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
mcb30 committed Mar 23, 2015
1 parent a3c00d8 commit 661189e
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/drivers/usb/xhci.c
Expand Up @@ -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;
Expand Down

0 comments on commit 661189e

Please sign in to comment.