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);
|
usb_transfer_t* transfer = endpoint_pop_transfer(endpoint);
|
||||||
unsigned int transferred = transfer->maximum_length - transfer->td.total_bytes;
|
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)
|
if (transfer->completion_cb)
|
||||||
transfer->completion_cb(transfer, transferred);
|
transfer->completion_cb(transfer, transferred);
|
||||||
free_transfer(transfer);
|
free_transfer(transfer);
|
||||||
|
Reference in New Issue
Block a user