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

Reply via email to