On Fri, 23 Mar 2007, David Brownell wrote: > On Friday 23 March 2007 9:11 am, Alan Stern wrote: > > > We don't clear the halt because the host is never supposed to clear halts > > on ep0. If the halt is a "protocol stall" (the normal case) then the > > device will clear it automatically when it receives the next SETUP packet. > > If the halt is a "functional stall" (discouraged by the USB spec) > > yes ... > > > there > > is no way to clear it -- the Clear-Halt request won't get through because > > ep0 is halted! > > ... no, that's a special case. Oddball devices that implement halt > status on ep0 must allow clear-halt requests for it too. See 8.5.3.4 > and (especially) the end of 9.4.5 ...
Whoops! You're right. Sometimes those little details fade away from my mind... > Linux "should" handle such oddball devices. Is it clear that this > is one of those cases? I don't see any easy way to tell. The spec doesn't offer any good way to tell the difference between one type of stall and the other. In fact, the only way seems to be to send another request that _should_ always succeed and see whether it does. Of course, failure could simply mean that the device's firmware is hung, in which case sending a Clear-Halt won't do much good. I have never (to my knowledge) encountered a device that actually did a functional stall. On the other hand, I have never tried sending a Set-Feature(halt) request to ep0 either. Alan Stern ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel