usb_queue: Transfer needs to be added to queue in both paths
This commit is contained in:
@ -139,13 +139,13 @@ void usb_transfer_schedule(
|
|||||||
fill_in_transfer(transfer, data, maximum_length);
|
fill_in_transfer(transfer, data, maximum_length);
|
||||||
transfer->completion_cb = completion_cb;
|
transfer->completion_cb = completion_cb;
|
||||||
// TODO: disable_interrupts();
|
// TODO: disable_interrupts();
|
||||||
|
endpoint_add_transfer(endpoint, transfer);
|
||||||
usb_transfer_t* tail = endpoint_transfers[index];
|
usb_transfer_t* tail = endpoint_transfers[index];
|
||||||
if (tail == NULL) {
|
if (tail == NULL) {
|
||||||
usb_endpoint_schedule_wait(endpoint, &transfer->td);
|
usb_endpoint_schedule_wait(endpoint, &transfer->td);
|
||||||
} else {
|
} else {
|
||||||
for (; tail->next != NULL; tail = tail->next);
|
for (; tail->next != NULL; tail = tail->next);
|
||||||
endpoint_add_transfer(endpoint, transfer);
|
usb_endpoint_schedule_append(endpoint, &tail->td, &transfer->td);
|
||||||
usb_endpoint_schedule_append(endpoint, &tail->td, &transfer->td);
|
|
||||||
}
|
}
|
||||||
//enable_interrupts();
|
//enable_interrupts();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user