소스 검색

[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 10 년 전
부모
커밋
661189eede
1개의 변경된 파일3개의 추가작업 그리고 0개의 파일을 삭제
  1. 3
    0
      src/drivers/usb/xhci.c

+ 3
- 0
src/drivers/usb/xhci.c 파일 보기

@@ -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;

Loading…
취소
저장