Messages in this thread | | | Subject | Re: [PATCH v4 5/7] usb: gadget: f_midi: set altsettings only for MIDIStreaming interface | From | Robert Baldyga <> | Date | Mon, 26 Oct 2015 23:30:01 +0100 |
| |
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().
> err = f_midi_start_ep(midi, f, midi->in_ep); > if (err) > return err; >
Best regards, Robert
| |