[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:
parent
a3c00d8d3b
commit
661189eede
@ -2437,6 +2437,9 @@ static int xhci_endpoint_reset ( struct usb_endpoint *ep ) {
|
|||||||
if ( ( rc = xhci_set_tr_dequeue_pointer ( xhci, slot, endpoint ) ) != 0)
|
if ( ( rc = xhci_set_tr_dequeue_pointer ( xhci, slot, endpoint ) ) != 0)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
|
/* Ring doorbell to resume processing */
|
||||||
|
xhci_doorbell ( &endpoint->ring );
|
||||||
|
|
||||||
DBGC ( xhci, "XHCI %p slot %d ctx %d reset\n",
|
DBGC ( xhci, "XHCI %p slot %d ctx %d reset\n",
|
||||||
xhci, slot->id, endpoint->ctx );
|
xhci, slot->id, endpoint->ctx );
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user