On Mon, 29 Aug 2005, Brian Murphy wrote: > It seems that the acm driver sets the maximum transfer size to > the wMaxPacketSize field of the relevant endpoint descriptor, > this is maximum 64 bytes for a bulk high speed endpoint. > From my experiments this does not just restrict bulk packets to > the correct size but also restricts the maximum number of packets > in a frame to one packet. With 1 frame/ms this gives a limitation of > 64k/s. > > Changing the line > > acm->writesize = le16_to_cpu(epwrite->wMaxPacketSize); > > to > > acm->writesize = 64*17; /* 17 - number of bulk packets in a USB high > speed frame */ > > increases performance for writes considerably. > > This hack is almost certainly not optimal for usb 2.0 (full speed) devices.
FYI: Full speed is 12 Mb/s, and the maximum number of 64-byte bulk packets in a full-speed frame is 19. High speed is 480 Mb/s. There's no reason (as far as I know) why the writesize needs to have any particular relation to the size of a packet or the size of a frame. Alan Stern ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel