All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alan Stern <stern@rowland.harvard.edu>
To: Andrey Konovalov <andreyknvl@google.com>
Cc: Felipe Balbi <balbi@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	USB list <linux-usb@vger.kernel.org>,
	Dmitry Vyukov <dvyukov@google.com>
Subject: Re: Testing endpoint halt support for raw-gadget
Date: Wed, 13 May 2020 14:14:31 -0400	[thread overview]
Message-ID: <20200513181431.GB2862@rowland.harvard.edu> (raw)
In-Reply-To: <CAAeHK+yHBZ4oxW7AbS8VwqMrULKiETBYjW6ARZ+9FiWk=hvs=g@mail.gmail.com>

On Wed, May 13, 2020 at 07:07:20PM +0200, Andrey Konovalov wrote:
> Hi Alan,
> 
> I've been looking at this a little more. Do I understand correctly
> that even though Dummy UDC names endpoints as "ep1in", etc. it
> actually allows to assign endpoints addresses different from what is
> specified in the endpoint names (it uses find_endpoint() to find the
> right endpoint based on ep->desc)? E.g. you can technically assign
> endpoint with address 2 (| USB_DIR_IN) to "ep1in".

Yes, that's right.  In fact, you can do this with any UDC.  (But with 
other UDCs it won't work, whereas with dummy-hcd it will.)

> If this is correct, this kind of limits Dummy UDC usage with Raw
> Gadget the way it is currently implemented, as Raw Gadget assumes that
> the endpoint address must be fixed when the endpoint is named as
> ep1in.

Okay.  That makes sense, since it is true for most UDCs.

> Would it be acceptable to add another mode to Dummy UDC that names the
> endpoints as "ep-a"? Perhaps enabled with a module parameter. I'm not
> sure if this kind of naming would be technically correct, as "ep-a"
> name assumes that we can assign arbitrary transfer type to the
> endpoint as well, which isn't possible with Dummy UDC, as it doesn't
> support ISO transfers.
> 
> Or do you think there can be another way to expose the fact that Dummy
> UDC allows arbitrary addresses? I could hardcode this into Raw Gadget,
> but it doesn't feel like the right approach.

Why do you want to do this?  Does anything go wrong if you just continue 
to assume the endpoint numbers are fixed?

I suppose, if you thought this was really necessary, we could change 
find_endpoint() so that it looks for a match against the endpoint's name 
instead of against the address stored in the descriptor.  Or we could 
change the last thirteen "generic" endpoints in ep_info[] to be 
configurable: "ep-a", ..., "ep-m", or "ep-aout", ..., "ep-min".  (The 
fact that the endpoints don't support isochronous is exposed through the 
usb_ep_caps structures.)

Alan Stern

  reply	other threads:[~2020-05-13 18:14 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-09 16:48 Testing endpoint halt support for raw-gadget Andrey Konovalov
2020-04-10  0:29 ` Alan Stern
2020-04-10 15:13   ` Andrey Konovalov
2020-04-10 15:53     ` Alan Stern
2020-04-27  1:26       ` Peter Chen
2020-04-27 14:29         ` Alan Stern
2020-04-29  2:20       ` Andrey Konovalov
2020-04-29 14:06         ` Alan Stern
2020-05-04 14:16           ` Andrey Konovalov
2020-05-04 14:24             ` Alan Stern
2020-05-04 15:11               ` Andrey Konovalov
2020-05-04 15:15                 ` Alan Stern
2020-05-05  6:34                   ` Felipe Balbi
2020-05-05 12:13                     ` Andrey Konovalov
2020-05-05 16:42                       ` Thinh Nguyen
2020-05-05  6:30               ` Felipe Balbi
2020-04-24 19:36   ` Andrey Konovalov
2020-04-24 19:56     ` Andrey Konovalov
2020-04-25  1:53       ` Alan Stern
2020-04-25 14:49         ` Andrey Konovalov
2020-04-25 15:02           ` Alan Stern
2020-04-27 19:51     ` Andrey Konovalov
2020-04-27 20:47       ` Andrey Konovalov
2020-04-28  0:50         ` Andrey Konovalov
2020-04-28  1:32           ` Andrey Konovalov
2020-04-28 13:27             ` Alan Stern
2020-05-13 17:07               ` Andrey Konovalov
2020-05-13 18:14                 ` Alan Stern [this message]
2020-05-13 18:31                   ` Andrey Konovalov
2020-05-13 19:09                     ` Alan Stern
2020-05-13 19:38                       ` Andrey Konovalov

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=20200513181431.GB2862@rowland.harvard.edu \
    --to=stern@rowland.harvard.edu \
    --cc=andreyknvl@google.com \
    --cc=balbi@kernel.org \
    --cc=dvyukov@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-usb@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.