XHCI: Print errors when transfers have non-success completion codes.
This commit is contained in:
@@ -2380,11 +2380,16 @@ XHCI::HandleTransferComplete(xhci_trb* trb)
|
|||||||
(flags & TRB_3_EVENT_DATA_BIT), completionCode, transferred);
|
(flags & TRB_3_EVENT_DATA_BIT), completionCode, transferred);
|
||||||
|
|
||||||
if ((flags & TRB_3_EVENT_DATA_BIT) == 0) {
|
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;
|
remainder = transferred;
|
||||||
transferred = -1;
|
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);
|
const phys_addr_t source = B_LENDIAN_TO_HOST_INT64(trb->address);
|
||||||
for (xhci_td *td = endpoint->td_head; td != NULL; td = td->next) {
|
for (xhci_td *td = endpoint->td_head; td != NULL; td = td->next) {
|
||||||
int64 offset = (source - td->trb_addr) / sizeof(xhci_trb);
|
int64 offset = (source - td->trb_addr) / sizeof(xhci_trb);
|
||||||
|
|||||||
Reference in New Issue
Block a user