On Tue, 4 Oct 2005, Glenn Maynard wrote: > On Tue, Oct 04, 2005 at 09:08:16AM -0700, Pete Zaitcev wrote: > > The clearing is needed only if a device is attached across the driver > > reload, and if you cannot tolerate a command failure (most likely, an > > open(2) would fail). If a device gets connected after the reload, it's > > all the same. I am sure this should not be an issue in arcade > > applications, where players plug keys in as save media. > > It probably means that a device would show an error if it's left in across > a reboot, and would need to be replugged. (For example, someone installs > a patch from a USB stick, reboots to apply it, and then plays the game > with the same stick to test it.) Just offering a case; this is something > I can live with.
The error shows up because some devices don't clear their data toggles when they receive a Set-Interface request. The USB core sends a Set-Interface whenever a driver is unloaded and assumes the device does clear the toggles (the spec says that it should). As a result, the device's toggle might be set to 1 when the driver is reloaded, while the computer thinks the toggle is 0. This will cause the next data packet to be ignored by the device (OUT endpoint) or by the host (IN endpoint). If ub would time out and retry, this wouldn't be a problem. Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel