All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Baldyga <r.baldyga@samsung.com>
To: Felipe Tonello <eu@felipetonello.com>,
	Robert Baldyga <r.baldyga@hackerion.com>
Cc: USB list <linux-usb@vger.kernel.org>,
	Kernel development list <linux-kernel@vger.kernel.org>,
	Felipe Balbi <balbi@ti.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Andrzej Pietrasiewicz <andrzej.p@samsung.com>,
	Clemens Ladisch <clemens@ladisch.de>
Subject: Re: [PATCH v4 5/7] usb: gadget: f_midi: set altsettings only for MIDIStreaming interface
Date: Tue, 27 Oct 2015 07:47:38 +0100	[thread overview]
Message-ID: <562F1E0A.30703@samsung.com> (raw)
In-Reply-To: <CAGrhNMz9aRERVKOVn82WP7R1pZ9wAVV=DnCee87FjfEo1-v3-Q@mail.gmail.com>

On 10/26/2015 11:53 PM, Felipe Tonello wrote:
> Hi Robert,
> 
> On Mon, Oct 26, 2015 at 10:30 PM, Robert Baldyga
> <r.baldyga@hackerion.com> wrote:
>> On 10/26/2015 05:55 PM, Felipe F. Tonello wrote:
>>> This avoids duplication of USB requests for OUT endpoint and
>>> re-enabling endpoints.
>>>
>>> Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>
>>> ---
>>>  drivers/usb/gadget/function/f_midi.c | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
>>> index 0e9cdeb..a617df3 100644
>>> --- a/drivers/usb/gadget/function/f_midi.c
>>> +++ b/drivers/usb/gadget/function/f_midi.c
>>> @@ -323,6 +323,10 @@ static int f_midi_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
>>>       unsigned i;
>>>       int err;
>>>
>>> +     /* We don't care if it is not MIDIStreaming interface */
>>> +     if (intf != ms_interface_desc.bInterfaceNumber)
>>> +             return 0;
>>> +
>>
>> These global descriptors are overwritten in bind() of each instance of
>> f_midi, so you have no guarantee that your bInterfaceNumber is correct
>> for your current instance. Instead you should store value obtained from
>> usb_interface_id() during bind().
> 
> Ok.
> 
> But then this interface descriptors shouldn't be global static,
> because they will always reflect the latest bind() only. Right?

They are copied for each instance of USB function, so they are actually
template to fill and copy in bind(). I'm currently working on some
patches changing a bit behavior of set_alt() to make it clearer, but for
now the only way to distinguish between altsettings properly is to store
bInterfaceNumber value for each function instance in its bind().

Best regards,
Robert

> 
>>
>>>       err = f_midi_start_ep(midi, f, midi->in_ep);
>>>       if (err)
>>>               return err;
>>>
> 
> Felipe


  reply	other threads:[~2015-10-27  6:47 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-26 16:55 [PATCH v4 0/7] USB MIDI Gadget improvements and bug fixes Felipe F. Tonello
2015-10-26 16:55 ` [PATCH v4 1/7] usb: gadget: f_midi: Transmit data only when IN ep is enabled Felipe F. Tonello
2015-10-26 22:13   ` Robert Baldyga
2015-10-26 22:49     ` Felipe Tonello
2015-10-27  6:41       ` Robert Baldyga
2015-10-27  9:21         ` Felipe Ferreri Tonello
2015-10-26 16:55 ` [PATCH v4 2/7] usb: gadget: f_midi: remove duplicated code Felipe F. Tonello
2015-10-26 16:55 ` [PATCH v4 3/7] usb: gadget: define free_ep_req as universal function Felipe F. Tonello
2015-10-27  6:53   ` Robert Baldyga
2015-10-27  9:18     ` Felipe Ferreri Tonello
2015-10-27  9:47       ` Robert Baldyga
2015-10-27 12:53         ` Felipe Ferreri Tonello
2015-10-26 16:55 ` [PATCH v4 4/7] usb: gadget: f_midi: fix leak on failed to enqueue out requests Felipe F. Tonello
2015-10-26 22:23   ` Robert Baldyga
2015-10-26 22:55     ` Felipe Tonello
2015-10-26 16:55 ` [PATCH v4 5/7] usb: gadget: f_midi: set altsettings only for MIDIStreaming interface Felipe F. Tonello
2015-10-26 22:30   ` Robert Baldyga
2015-10-26 22:53     ` Felipe Tonello
2015-10-27  6:47       ` Robert Baldyga [this message]
2015-10-27  9:19         ` Felipe Ferreri Tonello
2015-10-26 16:55 ` [PATCH v4 6/7] usb: gadget: gmidi: Cleanup legacy code Felipe F. Tonello
2015-10-26 16:55 ` [PATCH v4 7/7] usb: gadget: f_midi: pre-allocate IN requests Felipe F. Tonello
2015-10-27 14:14 ` [PATCH v4 0/7] USB MIDI Gadget improvements and bug fixes Felipe Ferreri Tonello

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=562F1E0A.30703@samsung.com \
    --to=r.baldyga@samsung.com \
    --cc=andrzej.p@samsung.com \
    --cc=balbi@ti.com \
    --cc=clemens@ladisch.de \
    --cc=eu@felipetonello.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=r.baldyga@hackerion.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 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.