> > > On 04/07/2010 01:27 PM, Alan Stern wrote: >>> the EHCI spec allows up to 20k >> >> This is ingenuous. The EHCI spec allows a single qTD to describe up to >> 20 KB of data. But that's not the limit on the size of a data request; >> bulk data transfers can be arbitrarily long. Qemu could solve its >> problem the same way libusb does: by breaking the large request up into >> multiple smaller requests. >> >> Alan Stern >> > > Yes, I was referring to a data request from a single qTD which is passed > from guest to qemu to host. I'll take a look at libusb. > > Thanks, > > David Hi David, You are correct that ehci allows up to 20K in one qTD transfer. The gotcha is it requires that the page be aligned on some big boundary, I don't remember if it is 4K or something else, but it is a large alignment requirement. So most ehci host drivers limit a qTD to a 16K xfer so that there is no alignment issue; that is any transfer from any address will always fit in the 5 memory ptrs in the qTD hardware structure if the xfer size is <=16K. So for most linux devio.c urbs, asking for a 20K transfer is really going to require two hardware tds. If you want to keep the hardware busy, submit more urbs asynchronously. Regards, Steve -- 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