RE: [PATCHv2] usb: gadget: composite: Provide a list of available functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Sebastian Andrzej Siewior [mailto:bigeasy@xxxxxxxxxxxxx]
> Sent: Friday, October 17, 2014 3:03 PM
> To: Krzysztof Opasiak
> Cc: Andrzej Pietrasiewicz; Marek Szyprowski; Greg Kroah-Hartman;
> Krzysztof Opasiak; balbi@xxxxxx; Sebastian Andrzej Siewior;
> matt.porter@xxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx
> Subject: Re: [PATCHv2] usb: gadget: composite: Provide a list of
> available functions
> 
> On 2014-07-17 10:32:36 [+0200], Krzysztof Opasiak wrote:
> > In my opinion the target client is not libusbg but a layer above
> it,
> > let's call it gadget tool and gadget daemon. Libusbg should
> provide
> > convenient API for all functions which has been merged to kernel.
> > Library doesn't need to know which functions are available, it
> only
> > need to know how to configure them if the are available. If some
> > function is not available usbg_create_function() will simply fail
> with
> > suitable error code.
> 
> So you didn't answer my questions. Say you have a list of two
> functions
> says acm and ncm. Based on this information how do you know how to
> configure it?
> 

That's a good question but not directly related to current problem.
The problem is that user ends up in empty functions directory in
some gadget and has to write some magic strings which he may not know.
He has just build in the usb_f_mass_storage module and usb_f_ss_lb
and where should he get the information that he needs to use
mass_storage, Loopback and SourceSink as function types?
All those three are just magic strings hardcoded in kernel and not
exported in any place to userspace but we enforce the user to know them
and provide them to configfs.

Second scenario is that we have some running kernel and everything is
compiled-in and we would like to create a gadget. Let's say that we have
experience and we know all that magic strings but there still is a
problem
because we don't know what is available in current kernel. We need to
try
creating instance for all known for us functions type to learn what is
available in this kernel.

> > The problem is in a tool or a daemon. User should be able to
> discover
> > set of available functions using gadget tool or daemon. Currently
> it
> > is possible only by iterating through all supported in libusbg
> > functions and trying to create each of it. It's not a good
> method. In
> > my opinion it's more a hack that a solution.
> >
> > There is a method to discover list of functions which are
> compiled as
> > kernel modules but without access to kernel config, tool and a
> daemon
> > are unable to discover which USB functions has been compiled into
> > kernel.
> 
> I asked how target solving this. You are refering to libusbg and I
> have
> no idea what this is. The way I see it, is that you have a bunch of
> different
> functions and each function is different and needs to be configured
> differently. Say storage needs iSerial not to mention the backend
> and ncm
> needs a MAC address. Where do you gather that information from?
> 
> What I could image is right now is a tool that has a configuration
> file which
> provides all the information how to configure a function. And now I
> ask
> myself what is target doing. Does it query which modules and so
> backends
> / fabrics are available or does it just assume that all of those
> are
> available?

Library may support all currently mainlined functions and know how to
configure them. Like I wrote above problem is that currently running
kernel may have only subset of them and user has no ability to get
list of functions from kernel. Even if he has a config file he needs
to study kernel source to know what name has this particular module
registered in configfs.

--
Krzysiek

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux