소스 검색

Impove handling of non-enumeration control transfers

main
PaulStoffregen 7 년 전
부모
커밋
2423608e0f
1개의 변경된 파일6개의 추가작업 그리고 6개의 파일을 삭제
  1. +6
    -6
      enumeration.cpp

+ 6
- 6
enumeration.cpp 파일 보기

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

Loading…
취소
저장