- ep->Interface->Driver->Endpoints[ep->EndpointIdx].DataAvail(ep->Interface, ep->EndpointIdx, Length, Data);
+ op = malloc(sizeof(*op));
+
+ op->Next = NULL;
+ op->Endpt = ep;
+ op->Length = Length;
+ op->Data = ep->InputData;
+
+ LOG("op %p, endpoint %p (0x%x)", op, ep,
+ ep->Interface->Dev->Address * 16 + ep->EndpointNum);
+
+ Workqueue_AddWork(&gUSB_AsyncQueue, op);