Messages in this thread | | | Date | Mon, 26 Oct 2015 22:53:34 +0000 | Subject | Re: [PATCH v4 5/7] usb: gadget: f_midi: set altsettings only for MIDIStreaming interface | From | Felipe Tonello <> |
| |
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?
> >> err = f_midi_start_ep(midi, f, midi->in_ep); >> if (err) >> return err; >>
Felipe
| |