Browse Source

Fix scheduling of hub control transfers

main
PaulStoffregen 7 years ago
parent
commit
5ea0d568a1
1 changed files with 2 additions and 1 deletions
  1. +2
    -1
      hub.cpp

+ 2
- 1
hub.cpp View File

println("USBHub control callback"); println("USBHub control callback");
print_hexbytes(transfer->buffer, transfer->length); print_hexbytes(transfer->buffer, transfer->length);


sending_control_transfer = 0;
uint32_t port = transfer->setup.wIndex; uint32_t port = transfer->setup.wIndex;
uint32_t mesg = transfer->setup.word1; uint32_t mesg = transfer->setup.word1;


// allow only a single control transfer to occur at once // allow only a single control transfer to occur at once
// which isn't fast, but requires only 3 Transfer_t and // which isn't fast, but requires only 3 Transfer_t and
// allows reusing the setup and other buffers // allows reusing the setup and other buffers
sending_control_transfer = 0;
if (sending_control_transfer) return;
if (send_pending_poweron) { if (send_pending_poweron) {
send_poweron(lowestbit(send_pending_poweron)); send_poweron(lowestbit(send_pending_poweron));
} else if (send_pending_clearstatus_connect) { } else if (send_pending_clearstatus_connect) {

Loading…
Cancel
Save