Hi dave, first of all, thanks for your comments...
We'll work on them and send a newer version of the composite gadget support. See some comments below. On 7/29/07, David Brownell <[EMAIL PROTECTED]> wrote: > On Saturday 19 May 2007, Ragner Magalhaes wrote: > > The following series implements USB Composite Gadget Support. > > And I'm finally looking at this again. :) > > These patches seem to be "step one", just starting to > make conversions. I'm assuming that you're circulating > them to get feedback (which, sorry, has been a bit hard > to come by) before later steps... > > > > [PATCH 1/6] USB gadget driver. > > This is badly misnamed -- "gadget.c" implies that it's the > one and only gadget driver. But it isn't; a "gadget" is > whatever talks to the abstracted hardware. And gadgets > aren't required to use this utility code. > > This is instead a composite gadget driver optimized to work > with a *single* function driver. It needs to be renamed. > I'd suggest "single.c", "singlefunc.c", or somesuch. We'll we were thinking about converting {serial, ether. file_storage}.c into usb_functions for good, and use gadget.c built with one of those function drivers to create a gadget driver. Do you have a better solution here? Alan, what do you think?? > > > > [PATCH 2/6] Composite gadget driver. > > This should actually be patch #1. Among other things, it > defines the <linux/usb/composite.h> header used in your > patch #1! > > Now, this patch is basically a version of something I sent > some time back. Explicitly *without* a signed-off-by. So > it's wrong for you to both (a) list it as "From:" you, and > also to (b) add my signed-off-by line. Sorry about that... git mis-using here... fixing right away > > > > [PATCH 3/6] Composite gadget driver upgrade. > > I'm reviewing this with the expectation that the good > bits will merge directly into your #2. In fact, since > you're including an older version of my patch, some > of that has already been done... > > > > [PATCH 4/6] Kconfig modifications for USB Composite gadget support. > > Not really ... there's (a) stuff to switch two gadget > drivers over so they're "function" drivers using the > "single.c" glue code, and (b) stuff to build all the > composite gadget utility code into one module, but it's > missing (c) an actual composite gadget. Yeah... we still didn't figure how to do this one... Could any of you comment here? Dave? Alan? > > I know you had an actual composite gadget in earlier > patches ... you should include one, so that we can > see that it all works. > > You seem to be assuming that for example that a g_ether > module would be an Ethernet gadget driver module if > there's no composite gadget defined, else it would be > a function module. That's the wrong way to do things. not really, it'll always be a function module/driver, when you load it with gadget.c it'll become a gadget module, when you load it with composite.c it'll become part of a composite gadget. > > The point of the "g_*" naming convention, and also the > Kconfig, is that when you select "Ethernet Gadget" you > get an Ethernet gadget module. > > The way to assemble a given composite gadget, let's call > it "Fred" and named "g_fred", should be to link all the > functions together into that "g_fred.ko" module. It > must be possible to modprobe "g_ether" *OR* "g_fred"... > > > > [PATCH 5/6] Composite File Storage gadget support. > > [PATCH 6/6] Composite Ether gadget support. > > #5 and #6 just convert those gadget drivers to "function" > drivers. But I see that they still have most of the code > which should have been eliminated by such a conversion ... yeah... we still need to work on a lot of code... > > > > The Composite Gadget can handle one or two configurations. > > When the first usb_function modprobe'ed > > Don't assume functions can be modprobed by themselves > to mix'n'match. There needs to be "glue" code which > understands that for example a specific combination has > particular product and vendor IDs, and in general uses > particular device descriptors. The device class info > can matter a lot, for example... this was our first shot while thinking a way to build all the stuff together without messing the driver up. > > > > has two configurations > > the Composite Gadget will have two configurations, for the > > other functions modprobe'ed after will be used the selected or > > standard configuration only, their interfaces will be part > > of the Composite's Configurations. > > Then exchanging configs in the Composite will only affect the > > first function. > > In case the first modprobe'ed function has only one configure, > > the Composite Gadget WILL have only one configuration. > > This behavior is useful when modprobe'ing g_ether as the first > > usb_function due to the RNDIS and CDC Configurations. > > That seems like a fair approach to take, at least in terms > of managing configurations. Although I don't see why only > the first function should be special. > > On the other hand, folk are finding that RNDIS is significantly > less than Microsoft has promised, so maybe we shouldn't care > so much about that. Wouldn't it simplify things if we didn't > have to handle that case? > > ... and then there's the whole "other speed config" thing. > There need to be both full speed and high speed configs, if > the hardware supports high speed operation... > > > > > When the ether is modprobe'ed first: > > > > (Device Decriptor) > > / \ > > (Config 0) (Config 1) > > (eth config 0 + fsg config) (eth config 1 + fsg config) > > Did you test that with MS-Windows? The point about multiple > configs that Microsoft demands that the first listed config > be RNDIS. (That's not necessarily config 0!!) I don't recall > any expectation that "RNDIS + mass storage" could work... > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > linux-usb-devel@lists.sourceforge.net > To unsubscribe, use the last form field at: > https://lists.sourceforge.net/lists/listinfo/linux-usb-devel > -- Best Regards, Felipe Balbi [EMAIL PROTECTED] ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel