Procházet zdrojové kódy

[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>
tags/v1.20.1
Michael Brown před 10 roky
rodič
revize
661189eede
1 změnil soubory, kde provedl 3 přidání a 0 odebrání
  1. 3
    0
      src/drivers/usb/xhci.c

+ 3
- 0
src/drivers/usb/xhci.c Zobrazit soubor

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

Načítá se…
Zrušit
Uložit