On Thu, 25 Jan 2007, Oleg Verych wrote:

> In short:
>      deviceDescriptor->Operation = bNumInterface[!s]->Operation
>      (buggy software)                 (featured buggy hardware)
>      =[0]                                                  =[1]
> pic.3
> 
> I think, linux-usb "in-short" you can imagine. My veiw of it is as:
> 
>      deviceDescriptor->             bNumInterfaces +->Operation
>                                                    +->Operation ...
>      (usb-core)                                       (*drivers*)
> pic.4
> 
> Do you see gap in pic.4 ? It was patched slightly in 2.6.19.
> 
> Patch
>                 +++ bNumConfigurations +++
> 
> Shows, that it's very hard to do something with the gap, because
> *drivers* in pic.4 are not device drivers as it should be, but operation
> *managers*.

You are basically correct.  There are two different levels of abstraction:

        The entire device;

        The interfaces which do the actual work.

All the USB drivers except "generic" work on the interface level, which 
is of course the most interesting.  A driver for the entire device 
doesn't have to do very much.  As you can see by reading the "generic" 
source code, its main jobs are these:

        Export the device's attribute files in sysfs;

        Choose and install an initial configuration.

This isn't surprising.  At the entire-device level, USB doesn't do very 
much.  (I have omitted some relatively unimportant points about 
device-reset and suspend/resume; they don't matter for our purposes.)

> I know, that linux is developing on-demand by volunteers. Anyway i
> refuse to accept deep cave in the design, design of configuration or
> basic design, which must be utilized by anything, that may finally send
> bytes.
> 
> I think drivers (in my understanding) must begin in deviceDescriptor
> and any merging of bNumConfigurations and/or bNumInterfaces must
> happen further: in one file kernel object or many, doesn't mater.

So maybe you really do want an alternative to "generic", or else a way to 
make "generic" more flexible.

On the other hand, maybe the current TI serial driver works well enough 
already.

Alan Stern


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to