Hi, > For handle_combined_data, yes, as usb_ep_combine_input_packets can > cause multiple packets to get submitted, since if a combined packet > ends with a packet, which does not have its short_not_ok flag set, > another packet can be safely pipelined after it. This is not > useful for usb mass storage, but very usefull for usb serial > port converters.
Ah, I see. You can have a queue with -- say -- 16 packets which will get combined into 4 groups with 4 packets each -> 4 callbacks. I think handle_combined_data() should get USBCombinedPacket passed instead of USBPacket. It is cleaner API-wise. Likewise for the other usb_combined_* functions. Allowing to call usb_ep_combine_input_packets on any endpoint (except iso which is a special case anyway) would be good too I think, then it is possible for usb drivers to operate on USBCombinedPackets everywhere. BTW: I think USBPacketGroup would be a better name for USBCombinedPacket. cheers, Gerd