Till,

On Saturday 04 November 2006 10:24 am, Till Harbaum wrote:
> My device does all its communication via its control endpoint. Is
> this already a bad idea?

Yes, it is. I have to maintain a driver which is doing control transfers 
during normal operation, and it is a major cause of problems:

- control transfers are used rare, and the error handling (if some 
packets are corrupted or a timeout happens) is not well-debugged. If 
you want 100% reliability even in the presence of EMI pulses: stay 
away!

(The USB host hardware capabilities of doing retransmissions are a joke. 
If you have EMI pulses longer than a few ms, you will have to add an 
additional software layer of retransmission.)

- control transfers are used by the OS. You can't be sure that they 
don't interfere with your operations. This is especially true if you 
want to retransmitt in case of error, and there is no way you can 
control the control transfers not initiated by your driver.

- handling of a protocoll stall on the control endpoint is broken (not 
possible) in some versions of the evil OS. You have to reset the 
device...

Using bulk endpoints will be fine in most cases. Interrupt endpoints 
will work, too. But in Linux 2.4, there are problems if you want to use 
an INT OUT endpoint with one-shot-messages. Don't try this.

regards

Wolfgang

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to