Start matching endpoints against feature flags, this will help us dropping the naming conventions currently used by the Gadget Framework. 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; + } + /* some other naming convention */ if ('e' != ep->name[0]) return 0; @@ -159,8 +184,7 @@ ep_matches ( break; } - /* MATCH!! */ - +match: /* report address */ desc->bEndpointAddress &= USB_DIR_IN; if (isdigit (ep->name [2])) { -- 1.8.4.1.559.gdb9bdfb -- 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