Fix scheduling of hub control transfers

This commit is contained in:
PaulStoffregen 2017-10-08 05:25:39 -07:00
parent 1e6d0db268
commit 5ea0d568a1
1 changed files with 2 additions and 1 deletions

View File

@ -210,6 +210,7 @@ void USBHub::control(const Transfer_t *transfer)
println("USBHub control callback");
print_hexbytes(transfer->buffer, transfer->length);
sending_control_transfer = 0;
uint32_t port = transfer->setup.wIndex;
uint32_t mesg = transfer->setup.word1;
@ -265,7 +266,7 @@ void USBHub::control(const Transfer_t *transfer)
// allow only a single control transfer to occur at once
// which isn't fast, but requires only 3 Transfer_t and
// allows reusing the setup and other buffers
sending_control_transfer = 0;
if (sending_control_transfer) return;
if (send_pending_poweron) {
send_poweron(lowestbit(send_pending_poweron));
} else if (send_pending_clearstatus_connect) {