linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alan Stern <stern@rowland.harvard.edu>
To: Krzysztof Opasiak <k.opasiak@samsung.com>
Cc: "'Ruslan Bilovol'" <ruslan.bilovol@gmail.com>,
	"'Peter Chen'" <peter.chen@freescale.com>,
	<linux-usb@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	"'Balbi, Felipe'" <balbi@ti.com>, <gregkh@linuxfoundation.org>,
	Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Subject: RE: [PATCH 1/2] usb: gadget: udc-core: independent registration of gadgets and gadget drivers
Date: Mon, 9 Feb 2015 15:00:12 -0500 (EST)	[thread overview]
Message-ID: <Pine.LNX.4.44L0.1502091441390.26711-100000@netrider.rowland.org> (raw)
In-Reply-To: <100e01d04493$11a2fd40$34e8f7c0$%opasiak@samsung.com>

On Mon, 9 Feb 2015, Krzysztof Opasiak wrote:

> > Why bother matching by name?  Why not simply take the first
> > available
> > UDC?
> 
> Because you may have more than one udc. This would allow to pick one by
> name just like using configfs interface.

Clearly it would be more flexible to allow the user to do the matching, 
the way configfs does (sysfs too).

> > > Main feature of my path is not only deferred binding of gadget
> > driver,
> > > but also possibility to register/unregister udc at any time.
> > > This is useful for user who can load, for example, udc module
> > > if needed and unload it safely, not touching gadget driver.
> > 
> > We can already do that with the existing code.  There's no need for
> > a
> > patch.
> > 
> > Also, it's not clear that the existing gadget drivers will work
> > properly if they are unbound from one UDC and then bound again to
> > another one.  They were not written with that sort of thing in
> > mind.
> > 
> 
> What you have described is one of basics configfs features.
> You should be able to bind and unbind your gadget whenever you want
> and it should work properly after doing:
> 
> ## create gadget
> $ echo "udc.0" > UDC
> $ echo "" > UDC
> $ echo "udc.1" > UDC
> 
> Function shouldn't care which udc it has been bound previously.
> Only current one is important and on each unbind each function
> should cleanup its state and prepare to be bound to another udc.
> Configfs interface doesn't prohibit this and I haven't seen any
> info about such restriction.

It's not prohibited, but it also was never required.  Therefore it may 
not be implemented in all gadget drivers.

>  If some function is not working in
> such situation there is a bug in that function and it should be fixed.

That's fine.  I wasn't pointing out a fundamental limitation, just a 
fact that will have to be taken into account.

Anyway, instead of going through all this, why not do what I suggested 
earlier (see http://marc.info/?l=linux-usb&m=139888691230119&w=2) and 
create a "gadget" bus type?  That would give userspace explicit control 
over which gadget driver was bound to which UDC.

Or maybe that's not a very good fit with the existing code, since most 
gadget drivers assume they will be bound to only one UDC at a time.  So 
instead, why not create a sysfs interface that allows userspace to 
control which gadget drivers are bound to which UDCs?

As I recall, the original problem people were complaining about was
deferred probing.  They didn't need fancy matching; all they wanted was
the ability to bind a gadget driver to a UDC some time after the gadget
driver was loaded and initialized.  Something simple like Robert
Baldyga's patch is enough to do that.

Alan Stern


  parent reply	other threads:[~2015-02-09 20:00 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-29  1:25 [PATCH 0/2] usb/gadget: independent registration of gadgets and gadget Ruslan Bilovol
2015-01-29  1:25 ` [PATCH 1/2] usb: gadget: udc-core: independent registration of gadgets and gadget drivers Ruslan Bilovol
2015-01-29 15:56   ` Alan Stern
2015-02-08 19:04     ` Ruslan Bilovol
2015-02-09  8:46       ` Peter Chen
2015-02-09 16:35       ` Alan Stern
2015-02-09 18:06         ` Krzysztof Opasiak
2015-02-09 18:17           ` Krzysztof Opasiak
2015-02-09 20:00           ` Alan Stern [this message]
2015-02-09 23:46             ` Ruslan Bilovol
2015-02-10  8:47               ` Krzysztof Opasiak
2015-02-15 22:43                 ` Ruslan Bilovol
2015-02-16  8:07                   ` Andrzej Pietrasiewicz
2015-02-17 21:02                     ` Ruslan Bilovol
2015-02-18  7:21                       ` Andrzej Pietrasiewicz
2015-02-15 22:40             ` Ruslan Bilovol
2015-01-29  1:25 ` [PATCH 2/2] usb: gadget: legacy: don't use __init/__exit attributes for bind/unbind path Ruslan Bilovol

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.44L0.1502091441390.26711-100000@netrider.rowland.org \
    --to=stern@rowland.harvard.edu \
    --cc=andrzej.p@samsung.com \
    --cc=balbi@ti.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=k.opasiak@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=peter.chen@freescale.com \
    --cc=ruslan.bilovol@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).