From 553ff67585d10035653805d0613d319aafe2e5dd Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Sun, 14 Jul 2019 14:37:00 -0400 Subject: [PATCH] XHCI: Print errors when transfers have non-success completion codes. --- src/add-ons/kernel/busses/usb/xhci.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/busses/usb/xhci.cpp b/src/add-ons/kernel/busses/usb/xhci.cpp index a14899a9e8..00e47813fa 100644 --- a/src/add-ons/kernel/busses/usb/xhci.cpp +++ b/src/add-ons/kernel/busses/usb/xhci.cpp @@ -2380,11 +2380,16 @@ XHCI::HandleTransferComplete(xhci_trb* trb) (flags & TRB_3_EVENT_DATA_BIT), completionCode, transferred); if ((flags & TRB_3_EVENT_DATA_BIT) == 0) { - TRACE_ALWAYS("got an interrupt for a non-Event Data TRB!\n"); + TRACE("got an interrupt for a non-Event Data TRB!\n"); remainder = transferred; transferred = -1; } + if (completionCode != COMP_SUCCESS && completionCode != COMP_SHORT_PACKET) { + TRACE_ALWAYS("transfer error on slot %" B_PRId8 " endpoint %" B_PRId8 + ": %s\n", slot, endpointNumber, xhci_error_string(completionCode)); + } + const phys_addr_t source = B_LENDIAN_TO_HOST_INT64(trb->address); for (xhci_td *td = endpoint->td_head; td != NULL; td = td->next) { int64 offset = (source - td->trb_addr) / sizeof(xhci_trb);