On Saturday 04 September 2004 7:02 am, Laurent Pinchart wrote: > > The following comment is present in hub.c:1175 > > /* cope with hardware quirkiness: > * - let SET_ADDRESS settle, some device hardware wants it > * - read ep0 maxpacket even for high and low speed, > */ > > Could anyone tell me who added that comment ?
Probably me. I've certainly seen devices that misbehave if SET_ADDRESS doesn't have time to settle (PXA 255), but the other reason is probably just historical paranoia. I'm not sure who actually wrote that code in the first place, but it included no explanations ... > Is anyone aware of any low-speed > device that would fail with more than ep0 maxpacket ? My low-speed device > fails for ep0 maxpacket :-) Nope; and changinging maxpacket should be needed only for full speed devices. That little wierdness in the code (pointless descriptor fetches for non-fullspeed devices) never made much sense to me. > If we want to mimic Windows XP behaviour, the request size should > be raised to > 18 bytes (which is the size of a device descriptor), and SET_ADDRESS should > be issued after reading the descriptor. Or more simply: only do the guess/read/fix maxpacket dance for full speed devices. Low and high speed devices always have fixed maxpacket, they can just read the descriptor as soon as the hardware settled from SET_ADDRESS. Got Patch? :) I'm not sure I really like the idea of switching right now to doing the SET_ADDRESS second ... maybe later, but first I'd rather make Linux handle the variety of peripheral bugs in GET_DESCRIPTOR handling. Changing more than one factor at a time in this area will just get messy. Fixes for descriptor fetch problems need to get applied to both device and config descriptors, too. - Dave ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel