On Thu, 22 Jul 2004, Kyle Harris wrote: > It looks like the windows driver performs the initial get_descriptor with a > maximum to determine the actual descriptor size. Then it resets the device > and uses the actual length. This particluar device appears not to work with a > request of less than actual length. Linux always requests 8, windows requests > actual. I guess I'm surprised no one else has seen similar problems with > other devices.
I get it. I don't know whether the patch I sent will really work. There's a problem with the initial 64-byte get_descriptor and it's not clear how Windows works around it. The problem is that after the device sends its first 8-byte packet and is ready to send the next one, the host thinks the short packet indicates the end of the response. So the host will send an OUT packet for the status stage of the transfer but the device will expect to get another IN packet. If the device responds with an ACK to the OUT then all is well, but otherwise the transfer will fail. Maybe the host doesn't care if the transfer fails; maybe it only checks to see that the first 8 bytes were transferred okay. And by the way, people _have_ seen similar problems with other devices. Particularly Nikon digital cameras, if memory serves. Alan Stern ------------------------------------------------------- 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=4721&alloc_id=10040&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
