Hello, This patch series reworks endpoint matching and claiming mechanism in epautoconf. The patch (1) introduces new safer endpoint claiming method, basing on new 'claimed' flag. It was discussed here [1]. I proposed this solution over year ago and it was accepted, but apparently I forgot to send the final version of patch. Patches (2-3) add the 'capabilities flags' structure and helper macros. This solution is inspired by the 'feature flags' originally proposed by Felipe Balbi in 2013 [2], but unfortunately implementation of this feature has never been completed. Patches (4-36) add' capabilites flags' support to all UDC drivers present in the kernel tree. It's needed to be done before replacing old endpoint matching mechanism, otherwise UDC drivers which doesn't set 'capabilities flags' won't work with new autoconfig. Patch (37) finally replaces old endpoint matching method with the new one basing on capabilities flags. These changes aims to get rid of code, which guesses endpoint capabilities basing on it's name, and introduce new better replacement. In result we have better way to describe types and directions supported by each endpoint. For example the old name-based method didn't allow to have endpoint supporing two types of transfers - there were only ability to support one or all endpoint types. The 'capabilities flags' feature supply precise, flexible and extendible mechanism of description of endpoint hardware limitations, which is desired for proper endpoint matching. Best regards, Robert Baldyga [1] https://lkml.org/lkml/2014/6/16/94 [2] http://www.spinics.net/lists/linux-usb/msg99662.html Robert Baldyga (37): usb: gadget: encapsulate endpoint claiming mechanism usb: gadget: add endpoint capabilities flags usb: gadget: add endpoint capabilities helper macros staging: emxx_udc: add ep capabilities support usb: chipidea: udc: add ep capabilities support usb: dwc2: gadget: add ep capabilities support usb: dwc3: gadget: add ep capabilities support usb: gadget: amd5536udc: add ep capabilities support usb: gadget: at91_udc: add ep capabilities support usb: gadget: bcm63xx_udc: add ep capabilities support usb: gadget: bdc: add ep capabilities support usb: gadget: dummy-hcd: add ep capabilities support usb: gadget: fotg210-udc: add ep capabilities support usb: gadget: fsl_qe_udc: add ep capabilities support usb: gadget: fsl_udc_core: add ep capabilities support usb: gadget: fusb300_udc: add ep capabilities support usb: gadget: goku_udc: add ep capabilities support usb: gadget: gr_udc: add ep capabilities support usb: gadget: lpc32xx_udc: add ep capabilities support usb: gadget: m66592-udc: add ep capabilities support usb: gadget: mv_u3d_core: add ep capabilities support usb: gadget: mv_udc_core: add ep capabilities support usb: gadget: net2272: add ep capabilities support usb: gadget: net2280: add ep capabilities support usb: gadget: omap_udc: add ep capabilities support usb: gadget: pch_ud: add ep capabilities support usb: gadget: pxa25x_udc: add ep capabilities support usb: gadget: pxa27x_udc: add ep capabilities support usb: gadget: r8a66597-udc: add ep capabilities support usb: gadget: s3c-hsudc: add ep capabilities support usb: gadget: s3c2410_udc: add ep capabilities support usb: gadget: udc-xilinx: add ep capabilities support usb: isp1760: udc: add ep capabilities support usb: musb: gadget: add ep capabilities support usb: renesas: gadget: add ep capabilities support usb: gadget: atmel_usba_udc: add ep capabilities support usb: gadget: epautoconf: add endpoint capabilities flags verification drivers/staging/emxx_udc/emxx_udc.c | 60 ++++++++++++------------ drivers/usb/chipidea/udc.c | 14 ++++++ drivers/usb/dwc2/gadget.c | 13 ++++++ drivers/usb/dwc3/gadget.c | 13 ++++++ drivers/usb/gadget/epautoconf.c | 83 +++++++++++---------------------- drivers/usb/gadget/udc/amd5536udc.c | 57 ++++++++++++++++++---- drivers/usb/gadget/udc/at91_udc.c | 33 +++++++++---- drivers/usb/gadget/udc/atmel_usba_udc.c | 11 +++++ drivers/usb/gadget/udc/bcm63xx_udc.c | 25 ++++++++-- drivers/usb/gadget/udc/bdc/bdc_ep.c | 9 ++++ drivers/usb/gadget/udc/dummy_hcd.c | 65 ++++++++++++++++++++------ drivers/usb/gadget/udc/fotg210-udc.c | 11 +++++ drivers/usb/gadget/udc/fsl_qe_udc.c | 11 +++++ drivers/usb/gadget/udc/fsl_udc_core.c | 13 ++++++ drivers/usb/gadget/udc/fusb300_udc.c | 11 +++++ drivers/usb/gadget/udc/goku_udc.c | 8 ++++ drivers/usb/gadget/udc/gr_udc.c | 11 +++++ drivers/usb/gadget/udc/lpc32xx_udc.c | 32 +++++++++++++ drivers/usb/gadget/udc/m66592-udc.c | 11 +++++ drivers/usb/gadget/udc/mv_u3d_core.c | 9 ++++ drivers/usb/gadget/udc/mv_udc_core.c | 9 ++++ drivers/usb/gadget/udc/net2272.c | 11 +++++ drivers/usb/gadget/udc/net2280.c | 50 +++++++++++++++----- drivers/usb/gadget/udc/omap_udc.c | 22 +++++++++ drivers/usb/gadget/udc/pch_udc.c | 14 +++++- drivers/usb/gadget/udc/pxa25x_udc.c | 32 +++++++++++++ drivers/usb/gadget/udc/pxa27x_udc.h | 33 +++++++------ drivers/usb/gadget/udc/r8a66597-udc.c | 10 ++++ drivers/usb/gadget/udc/s3c-hsudc.c | 15 ++++++ drivers/usb/gadget/udc/s3c2410_udc.c | 10 ++++ drivers/usb/gadget/udc/udc-xilinx.c | 9 ++++ drivers/usb/isp1760/isp1760-udc.c | 11 +++++ drivers/usb/musb/musb_gadget.c | 12 +++++ drivers/usb/renesas_usbhs/mod_gadget.c | 6 +++ include/linux/usb/gadget.h | 42 +++++++++++++++++ 35 files changed, 633 insertions(+), 153 deletions(-) -- 1.9.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel