On Fri, 8 Nov 2013, Felipe Balbi wrote: > Start matching endpoints against feature flags, > this will help us dropping the naming conventions > currently used by the Gadget Framework. The logic doesn't look quite right. > Signed-off-by: Felipe Balbi <balbi@xxxxxx> > --- > drivers/usb/gadget/epautoconf.c | 28 ++++++++++++++++++++++++++-- > 1 file changed, 26 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c > index feaaa7b..d55b5c4 100644 > --- a/drivers/usb/gadget/epautoconf.c > +++ b/drivers/usb/gadget/epautoconf.c > @@ -62,6 +62,31 @@ ep_matches ( > if (USB_ENDPOINT_XFER_CONTROL == type) > return 0; > > + /* first check feature flags */ > + if (ep->has_dir_in ^ usb_endpoint_dir_in(desc)) > + return 0; > + > + if (ep->has_dir_out ^ usb_endpoint_dir_out(desc)) > + return 0; > + > + switch (type) { > + case USB_ENDPOINT_XFER_CONTROL: > + /* only ep0 */ > + return 0; > + case USB_ENDPOINT_XFER_BULK: > + if (!ep->has_bulk) > + return 0; > + goto match; > + case USB_ENDPOINT_XFER_INT: > + if (!ep->has_interrupt) > + return 0; > + goto match; > + case USB_ENDPOINT_XFER_ISOC: > + if (!ep->has_isochronous) > + return 0; > + goto match; > + } How does the flow of control ever get to here? I think what you want is more like this: case USB_ENDPOINT_XFER_BULK: if (ep->has_bulk) goto match; break; etc... Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html