Henning Meier-Geinitz wrote:
...
Now I found out that I can provoke the problem also with Linux. If I
use libusb in it's most basic way, there is no problem. But if I use
any of the functions usb_set_configuration(), usb_resetep(),
usb_clear_halt(), I get the same problem.
I've never exactly been clear on when usb_resetep() could be used
correctly ... it just sets the toggle to DATA0, even if the endpoint
is busy.  So there's basically no way to know if it's even safe to
try changing the toggle at that point; and there's no way to know if
the device expects DATA0, so it can easily lead to dropped packets
(and then to reads that hang, as your case).


Anyone any ideas? Just crappy hardware? But why is the error triggered
by a simple function like resetep?
Near as I can tell, "resetep" is a crappy function that will, at
least half the time you use it, cause misbehavior ... and the rest
of the time, will be a NOP (because the toggle is already DATA0,
as it should be).  I've suspected that the correct implementation
in usbfs would be just to always fail with some errno.

You might _also_ have crappy hardware (or firmware in it).

- Dave





-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to