There were some more changes to note...
There were some more changes to note...
Posted Jul 17, 2003 15:00 UTC (Thu) by HalfMoon (guest, #3211)Parent article: Changes to the USB driver API for the 2.5 series kernel
Another set of changes is removing "automagic" resubmission for periodic transfers (iso, interrupt). In 2.4, the host controller drivers re-issued URBs until they were unlinked, or rather they tried to do so ... they couldn't always do so, the failures got masked from device drivers. So in 2.6 kernels, device drivers do this, and they're guaranteed to see any failures. If you use periodic transfers, your driver will need updating for this.
Plus, on 2.6 kernels every type of URB can be queued, including control and interrupt. On 2.4 kernels interrupt transfers couldn't be queued (so high transfer rates couldn't work), and in fact there was an arbitrary one-packet limit. (That limit is now gone, you can read or write multi-packet reports without needing to de-fragment them in your driver.) And on 2.4 there were several related host controller differences: the UHCI drivers didn't queue control requests (causing problems with any composite devices, and with many user mode probrams), and wouldn't queue bulk requests unless you used an explicit QUEUE_BULK flag (now gone).
But the real USB work in 2.6 was to fix lots of bugs and remove lots of opportunities for things to break.
