Explorar el Código

Impove handling of non-enumeration control transfers

main
PaulStoffregen hace 7 años
padre
commit
2423608e0f
Se han modificado 1 ficheros con 6 adiciones y 6 borrados
  1. +6
    -6
      enumeration.cpp

+ 6
- 6
enumeration.cpp Ver fichero

@@ -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;
}

Cargando…
Cancelar
Guardar