There were some more changes to note...
Posted Jul 17, 2003 15:00 UTC (Thu) by HalfMoon
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.
to post comments)