The basic idea is that the I/O requests for USB should be purely asynchronous, and synchronization policies should push up to higher levels. Ideally to device drivers, but usbcore can't avoid synchronizing things like enumeration, config changing, driver bind/unbind, and disconnect.
Why to the device drivers? This to me seems to be leading to code duplication.
Because the primitives are all provided elsewhere in the kernel (wait_for_completion etc) and since the policy of where/why/how to synchronize is highly driver-specific.
And because it seems like every time I look at the existing synchronous primitives, more problems seem to crop up ... drivers using only the async urb primitives bypass all of them.
- Dave
The only synchronization in the lowest level code (HCDs) should be with the hardware.
Yes, that's the ideal state.
Regards Oliver
------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
