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 <[email protected]>
---
 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to