|
|
@@ -97,6 +97,12 @@ void USBHost::enumeration(const Transfer_t *transfer) |
|
|
|
//print(transfer); |
|
|
|
Device_t *dev = transfer->pipe->device; |
|
|
|
|
|
|
|
// If a driver created this control transfer, allow it to process the result |
|
|
|
if (transfer->driver) { |
|
|
|
transfer->driver->control(transfer); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
while (1) { |
|
|
|
// Within this large switch/case, "break" means we've done |
|
|
|
// some work, but more remains to be done in a different |
|
|
@@ -220,12 +226,6 @@ void USBHost::enumeration(const Transfer_t *transfer) |
|
|
|
return; |
|
|
|
case 15: // control transfers for other stuff? |
|
|
|
// TODO: handle other standard control: set/clear feature, etc |
|
|
|
for (USBDriver *d = dev->drivers; d != NULL; d = d->next) { |
|
|
|
if (d->control(transfer)) { |
|
|
|
// this driver processed the control transfer reply |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
default: |
|
|
|
return; |
|
|
|
} |