usb_queue: Assert that transaction succeeded
This commit is contained in:
@ -160,6 +160,13 @@ void usb_queue_transfer_complete(usb_endpoint_t* const endpoint)
|
||||
{
|
||||
usb_transfer_t* transfer = endpoint_pop_transfer(endpoint);
|
||||
unsigned int transferred = transfer->maximum_length - transfer->td.total_bytes;
|
||||
uint8_t status = transfer->td.total_bytes;
|
||||
if (status & USB_TD_DTD_TOKEN_STATUS_ACTIVE
|
||||
|| status & USB_TD_DTD_TOKEN_STATUS_HALTED
|
||||
|| status & USB_TD_DTD_TOKEN_STATUS_BUFFER_ERROR
|
||||
|| status & USB_TD_DTD_TOKEN_STATUS_TRANSACTION_ERROR) {
|
||||
assert(0);
|
||||
}
|
||||
if (transfer->completion_cb)
|
||||
transfer->completion_cb(transfer, transferred);
|
||||
free_transfer(transfer);
|
||||
|
Reference in New Issue
Block a user