Hello, I am into devive side driver implementation, not into host sided driver implementation, but I know that the partner of us, who is envolved in that, did have some major problems, we could solve somehow, and somehow not. Our orientation in this is usually vendor specific.
> > > > But of course there may be vendor specific devices > whose drivers should set > > > > configuration. We need to accomodate both. The question > is, how exactly? > > > > > > > > My goal is to simplify the vendor development environment > as much as > > > possible, since these are the people who must be > convinced to "get with the > > > program" ;-) [...] > > We should not be asking "Is it too horribly difficult?" > Rather we should ask > "Can we make it any easier?" Thank You very much! Keep that in mind... I read this thread, because I got a problem back in mind, which is roughly scratched by the theme. Maybe I can point out that there are vendor needs related to the original start of the thread. I know you called it sick, what we are doing, when I asked for help few months ago. But still our way is needed because of bandwidth requirements. And it looks all the way legitimately according to the specification. When probing after the first attachment of the gadget to usb, my device driver offers an interface with two identical alternate settings: Both have only 1 bulk in and 1 bulk out endpoint (I will not mention control ep). Now the application on the host side decides, what to do with the gadget and how to use bandwidth. Since this is critical because of system architectures and because there are hundreds of different realistic combinations of endpoint configurations, we have to decide after first enumeration. (We build Embedded Linux driven measurement systems, which have to transmit measurement data with deterministic latency.) So afterwards using alternate setting=0 via the bulk endpoints, the gadget is reconfigured setting the descriptor of alternatesetting 1 with additional isochronous endpoints. After this is done, the interface descriptor is read, and if aproved, the device is switched to alternatesetting=1 using the iso and bulk endpoints. To get the reconfiguration done throughout the whole chain (root hub and cascaded external hubs) I think it might be helpful, if we have a usb_set_interface the way we could set everything to index=0 and then get the devices interface from start on, without interrupting the other devices connected to external hubs. That's why we cannot use a bus_reset, which would reset all gadgets connected. I know that our partner managed a way to let this work out fine (yes it works!), but we still have the problem that the external hubs don't mind the latter reconfiguration. We did a work around, but that doesn't fit every situation possible. I guess a "true" reconfiguration via usb_set_configuration would help. Please remind that I am not into the host sided details and therefore might produce some noise to some of you. But my question does make sense to me in case of the whole chain down from gadget/device to the host, where I am envolved. So I don't want to be understood that I need a "service hotline" from you, rather than to point your focus on something, we vendor oriented firmware programmers might be thankful for. Thank You. Siegfried Wessler. ------------- HBM - Hottinger Baldwin Measurement GmbH Siegfried Wessler, Dipl.-Ing. Dept. R&D T-V Im Tiefen See 45, D-64293 Darmstadt, Germany Fon: +49/6151/803-884, Fax: -524 eMail: [EMAIL PROTECTED] ------------------------------------------------------- This SF.Net email is sponsored by: INetU Attention Web Developers & Consultants: Become An INetU Hosting Partner. Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel