Both your issues seem to be buggy-device issues, not a UHCI issues. Or are you also reporting that OHCI and EHCI work fine with it?
However, when I change the configuration value to 0x01, there is no problem with either system. I've noticed the code for the error message "config 0 descriptor??" is
if (cp && configuration == 0) dev_warn(&dev->, "config 0 descriptor??\n");
which is of some confusion to me: the configuration value of '0' is perfectly valid, I think. This may cause problems with other devices, too.
Actually it's not valid. Configuration number zero is reserved in the USB spec to indicate the device is in the ADDRESS state (so only ep0 is ever available). It should never appear in any device descriptor. Hence the warning: the device is ill, and other problems may be upcoming...
Problem 2) The amount of returned descriptor is a bit touchy. As far as I can tell, by the USB specification, when the host asks for 'x' number of bytes through the wLength field, the device is expected to return a payload of 'x' of bytes during the data phase. However, in practice this does not work as
Actually, it should return "up to X bytes".
So, despite the odd behavior, I send the entire device descriptor even when only 8 bytes are requested, and the initialization process continues.
Sounds like your firmware isn't sending eight byte responses correctly. If ep0 maxpacket is bigger than eight bytes, you probably need to do an explicit flush for such short packets.
What USB controller is your device using? Is it running Linux?
- Dave
------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel