Hi Marek, Thank you for the patch.
On dim., juin 09, 2024 at 23:32, Marek Vasut <marek.vasut+rene...@mailbox.org> wrote: > If .match_ep() callback returns non-NULL endpoint, immediately check > its usability and if the returned endpoint is usable, stop search and > return the endpoint. Otherwise, continue with best effort search for > usable endpoint. > > Currently the code would attempt the best effort search in any case, > which may find another unexpected endpoint. It is likely that the > intention of the original code was to stop the search early. > > Fixes: 77dcbdf3c1ce ("usb: gadget: Add match_ep() op to usb_gadget_ops") > Signed-off-by: Marek Vasut <marek.vasut+rene...@mailbox.org> I've added Vignesh to the CC list since he is the author of 77dcbdf3c1ce. He might be able to comment if this was indeed a mistake. It looks like a good fix to me as well. With this change we match more closely the linux implementation (usb_ep_autoconfig_ss()). Reviewed-by: Mattijs Korpershoek <mkorpersh...@baylibre.com> Tested-by: Mattijs Korpershoek <mkorpersh...@baylibre.com> # on vim3 > --- > Cc: Alexander Sverdlin <alexander.sverd...@siemens.com> > Cc: Felipe Balbi <felipe.ba...@linux.intel.com> > Cc: Lukasz Majewski <lu...@denx.de> > Cc: Mattijs Korpershoek <mkorpersh...@baylibre.com> > Cc: Nishanth Menon <n...@ti.com> > Cc: Simon Glass <s...@chromium.org> > Cc: Thinh Nguyen <thinh.ngu...@synopsys.com> > Cc: Tom Rini <tr...@konsulko.com> > Cc: u-boot@lists.denx.de > --- > drivers/usb/gadget/epautoconf.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c > index 09950ceeaed..66599ce8efa 100644 > --- a/drivers/usb/gadget/epautoconf.c > +++ b/drivers/usb/gadget/epautoconf.c > @@ -247,8 +247,11 @@ struct usb_ep *usb_ep_autoconfig( > return ep; > } > > - if (gadget->ops->match_ep) > + if (gadget->ops->match_ep) { > ep = gadget->ops->match_ep(gadget, desc, NULL); > + if (ep && ep_matches(gadget, ep, desc)) > + return ep; > + } > > /* Second, look at endpoints until an unclaimed one looks usable */ > list_for_each_entry(ep, &gadget->ep_list, ep_list) { > -- > 2.43.0