On Wed, 8 Oct 2003, Stavros Markou wrote: > Hi, > > Saying that reset device does not work I mean that there are 2 cases > a) the function returns success without sending anything to the USB BUS > b) the function returns success and all it does is to drive both D+, D- to > zero for 10ms > which is as you know resets the USB BUS > However after this it does not try to enumerate the device. > > The reenumeration is a very critical issue on every implementation of the > USB protocol > stack. More specifically, I think that not only reenumeration should be > implemented > in the USB protocol stack but should accept new configuration from device. > This means that when host asks for Get Descriptor (Descriptor > Type=Configuration) > where device presents configuration descriptor,interface descriptors, > endpoint > descriptors the OS should be capable of handling the same device > with different interfaces and more endpoints. > This is the implementation on most OSs and in Linux too in previous kernel > versions 2.4*.
When I have a chance, I plan to work on the usb_reset_device() routine. However, even now it does perform re-enumeration under some circumstances. My plan is to make reset_device() do a port reset, then read the device and configuration descriptors and compare them to the previously-stored values. If they disagree, the old drivers will be unbound and a complete re-enumeration will take place. So far as I know, no versions of the 2.4 driver do this. Alan Stern ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
