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

Reply via email to