> > The flag URB_ZERO_PACKET adds a ZLP if required, but > > the EHCI spec says that it will always do that anyway. I presume this > > is different to OHCI and UHCI (I don't have those specs). > > It isn't different; you are somehow misinterpreting the EHCI spec. > Where do you think it says that a ZLP will always be added? EHCI v1.0 section 4.10.3 (Intel ehci-r10.pdf) [1] " Note that the Total Bytes To Transfer field may be zero when all the other criteria for executing a transaction are met. When this occurs, the host controller will execute a zero-length transaction to the endpoint. If the PID_Code field indicates an IN transaction and the device delivers data, the host controller will detect a packet babble condition, set the babble and halted bits in the Status field, set the Active bit to a zero, write back the results to the source qTD, then exit this state. " To me the above indicates that a ZLP will be automatically sent by the hardware for a transaction ending on a boundary. -- Rich -- [1] www.intel.com/technology/usb/download/ehci-r10.pdf -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html