linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism
@ 2015-07-08 11:08 Robert Baldyga
  2015-07-08 11:08 ` [PATCH 01/37] usb: gadget: encapsulate endpoint " Robert Baldyga
                   ` (36 more replies)
  0 siblings, 37 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

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


^ permalink raw reply	[flat|nested] 39+ messages in thread

* [PATCH 01/37] usb: gadget: encapsulate endpoint claiming mechanism
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 02/37] usb: gadget: add endpoint capabilities flags Robert Baldyga
                   ` (35 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

So far it was necessary for usb functions to set ep->driver_data in
endpoint obtained from autoconfig to non-null value, to indicate that
endpoint is claimed by function (in autoconfig it was checked if endpoint
has set this field to non-null value, and if it has, it was assumed that
it is claimed). It could cause bugs becouse if some function doesn't
set this field autoconfig could return the same endpoint more than one
time.

To help to avoid such bugs this patch adds claimed flag to struct usb_ep,
and  encapsulates endpoint claiming mechanism inside usb_ep_autoconfig_ss()
and usb_ep_autoconfig_reset(), so now usb functions doesn't need to perform
any additional actions to mark endpoint obtained from autoconfig as claimed.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/epautoconf.c | 11 ++++++-----
 include/linux/usb/gadget.h      |  1 +
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c
index 919cdfd..8e00ca7 100644
--- a/drivers/usb/gadget/epautoconf.c
+++ b/drivers/usb/gadget/epautoconf.c
@@ -53,7 +53,7 @@ ep_matches (
 	int		num_req_streams = 0;
 
 	/* endpoint already claimed? */
-	if (NULL != ep->driver_data)
+	if (ep->claimed)
 		return 0;
 
 	/* only support ep0 for portable CONTROL traffic */
@@ -240,7 +240,7 @@ find_ep (struct usb_gadget *gadget, const char *name)
  * updated with the assigned number of streams if it is
  * different from the original value. To prevent the endpoint
  * from being returned by a later autoconfig call, claim it by
- * assigning ep->driver_data to some non-null value.
+ * assigning ep->claimed to true.
  *
  * On failure, this returns a null endpoint descriptor.
  */
@@ -323,6 +323,7 @@ struct usb_ep *usb_ep_autoconfig_ss(
 found_ep:
 	ep->desc = NULL;
 	ep->comp_desc = NULL;
+	ep->claimed = true;
 	return ep;
 }
 EXPORT_SYMBOL_GPL(usb_ep_autoconfig_ss);
@@ -354,7 +355,7 @@ EXPORT_SYMBOL_GPL(usb_ep_autoconfig_ss);
  * descriptor bEndpointAddress.  For bulk endpoints, the wMaxPacket value
  * is initialized as if the endpoint were used at full speed.  To prevent
  * the endpoint from being returned by a later autoconfig call, claim it
- * by assigning ep->driver_data to some non-null value.
+ * by assigning ep->claimed to true.
  *
  * On failure, this returns a null endpoint descriptor.
  */
@@ -373,7 +374,7 @@ EXPORT_SYMBOL_GPL(usb_ep_autoconfig);
  *
  * Use this for devices where one configuration may need to assign
  * endpoint resources very differently from the next one.  It clears
- * state such as ep->driver_data and the record of assigned endpoints
+ * state such as ep->claimed and the record of assigned endpoints
  * used by usb_ep_autoconfig().
  */
 void usb_ep_autoconfig_reset (struct usb_gadget *gadget)
@@ -381,7 +382,7 @@ void usb_ep_autoconfig_reset (struct usb_gadget *gadget)
 	struct usb_ep	*ep;
 
 	list_for_each_entry (ep, &gadget->ep_list, ep_list) {
-		ep->driver_data = NULL;
+		ep->claimed = false;
 	}
 	gadget->in_epnum = 0;
 	gadget->out_epnum = 0;
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 4f3dfb7..fcb0a4e 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -173,6 +173,7 @@ struct usb_ep {
 	const char		*name;
 	const struct usb_ep_ops	*ops;
 	struct list_head	ep_list;
+	bool			claimed;
 	unsigned		maxpacket:16;
 	unsigned		maxpacket_limit:16;
 	unsigned		max_streams:16;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 02/37] usb: gadget: add endpoint capabilities flags
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
  2015-07-08 11:08 ` [PATCH 01/37] usb: gadget: encapsulate endpoint " Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 03/37] usb: gadget: add endpoint capabilities helper macros Robert Baldyga
                   ` (34 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Introduce struct usb_ep_caps which contains information about capabilities
of usb endpoints - supported transfer types and directions. This structure
should be filled by UDC driver for each of its endpoints, and will be
used in epautoconf in new ep matching mechanism which will replace ugly
guessing of endpoint capabilities basing on its name.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 include/linux/usb/gadget.h | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index fcb0a4e..6f3e0fb 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -141,10 +141,29 @@ struct usb_ep_ops {
 };
 
 /**
+ * struct usb_ep_caps - endpoint capabilities description
+ * @type_control:Endpoint supports control type (reserved for ep0).
+ * @type_iso:Endpoint supports isochronous transfers.
+ * @type_bulk:Endpoint supports bulk transfers.
+ * @type_int:Endpoint supports interrupt transfers.
+ * @dir_in:Endpoint supports IN direction.
+ * @dir_out:Endpoint supports OUT direction.
+ */
+struct usb_ep_caps {
+	unsigned type_control:1;
+	unsigned type_iso:1;
+	unsigned type_bulk:1;
+	unsigned type_int:1;
+	unsigned dir_in:1;
+	unsigned dir_out:1;
+};
+
+/**
  * struct usb_ep - device side representation of USB endpoint
  * @name:identifier for the endpoint, such as "ep-a" or "ep9in-bulk"
  * @ops: Function pointers used to access hardware-specific operations.
  * @ep_list:the gadget's ep_list holds all of its endpoints
+ * @caps:The structure describing types and directions supported by endoint.
  * @maxpacket:The maximum packet size used on this endpoint.  The initial
  *	value can sometimes be reduced (hardware allowing), according to
  *      the endpoint descriptor used to configure the endpoint.
@@ -167,12 +186,14 @@ struct usb_ep_ops {
  * gadget->ep_list.  the control endpoint (gadget->ep0) is not in that list,
  * and is accessed only in response to a driver setup() callback.
  */
+
 struct usb_ep {
 	void			*driver_data;
 
 	const char		*name;
 	const struct usb_ep_ops	*ops;
 	struct list_head	ep_list;
+	struct usb_ep_caps	caps;
 	bool			claimed;
 	unsigned		maxpacket:16;
 	unsigned		maxpacket_limit:16;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 03/37] usb: gadget: add endpoint capabilities helper macros
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
  2015-07-08 11:08 ` [PATCH 01/37] usb: gadget: encapsulate endpoint " Robert Baldyga
  2015-07-08 11:08 ` [PATCH 02/37] usb: gadget: add endpoint capabilities flags Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 04/37] staging: emxx_udc: add ep capabilities support Robert Baldyga
                   ` (33 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Add macros useful while initializing array of endpoint capabilities
structures. These macros makes structure initialization more compact
to decrease number of code lines and increase readability of code.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 include/linux/usb/gadget.h | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 6f3e0fb..e6cbc25 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -158,6 +158,26 @@ struct usb_ep_caps {
 	unsigned dir_out:1;
 };
 
+#define USB_EP_CAPS_TYPE_CONTROL     0x01
+#define USB_EP_CAPS_TYPE_ISO         0x02
+#define USB_EP_CAPS_TYPE_BULK        0x04
+#define USB_EP_CAPS_TYPE_INT         0x08
+#define USB_EP_CAPS_TYPE_ALL \
+	(USB_EP_CAPS_TYPE_ISO | USB_EP_CAPS_TYPE_BULK | USB_EP_CAPS_TYPE_INT)
+#define USB_EP_CAPS_DIR_IN           0x01
+#define USB_EP_CAPS_DIR_OUT          0x02
+#define USB_EP_CAPS_DIR_ALL  (USB_EP_CAPS_DIR_IN | USB_EP_CAPS_DIR_OUT)
+
+#define USB_EP_CAPS(_type, _dir) \
+	{ \
+		.type_control = !!(_type & USB_EP_CAPS_TYPE_CONTROL), \
+		.type_iso = !!(_type & USB_EP_CAPS_TYPE_ISO), \
+		.type_bulk = !!(_type & USB_EP_CAPS_TYPE_BULK), \
+		.type_int = !!(_type & USB_EP_CAPS_TYPE_INT), \
+		.dir_in = !!(_dir & USB_EP_CAPS_DIR_IN), \
+		.dir_out = !!(_dir & USB_EP_CAPS_DIR_OUT), \
+	}
+
 /**
  * struct usb_ep - device side representation of USB endpoint
  * @name:identifier for the endpoint, such as "ep-a" or "ep9in-bulk"
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 04/37] staging: emxx_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (2 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 03/37] usb: gadget: add endpoint capabilities helper macros Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 05/37] usb: chipidea: udc: " Robert Baldyga
                   ` (32 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Fixed typo in "epc-nulk" to "epc-bulk".

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/staging/emxx_udc/emxx_udc.c | 60 ++++++++++++++++++-------------------
 1 file changed, 29 insertions(+), 31 deletions(-)

diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c
index 3b7aa36..0d64bee 100644
--- a/drivers/staging/emxx_udc/emxx_udc.c
+++ b/drivers/staging/emxx_udc/emxx_udc.c
@@ -3153,36 +3153,33 @@ static const struct usb_gadget_ops nbu2ss_gadget_ops = {
 	.ioctl			= nbu2ss_gad_ioctl,
 };
 
-static const char g_ep0_name[] = "ep0";
-static const char g_ep1_name[] = "ep1-bulk";
-static const char g_ep2_name[] = "ep2-bulk";
-static const char g_ep3_name[] = "ep3in-int";
-static const char g_ep4_name[] = "ep4-iso";
-static const char g_ep5_name[] = "ep5-iso";
-static const char g_ep6_name[] = "ep6-bulk";
-static const char g_ep7_name[] = "ep7-bulk";
-static const char g_ep8_name[] = "ep8in-int";
-static const char g_ep9_name[] = "ep9-iso";
-static const char g_epa_name[] = "epa-iso";
-static const char g_epb_name[] = "epb-bulk";
-static const char g_epc_name[] = "epc-nulk";
-static const char g_epd_name[] = "epdin-int";
-
-static const char *gp_ep_name[NUM_ENDPOINTS] = {
-	g_ep0_name,
-	g_ep1_name,
-	g_ep2_name,
-	g_ep3_name,
-	g_ep4_name,
-	g_ep5_name,
-	g_ep6_name,
-	g_ep7_name,
-	g_ep8_name,
-	g_ep9_name,
-	g_epa_name,
-	g_epb_name,
-	g_epc_name,
-	g_epd_name,
+static const struct {
+	const char *name;
+	const struct usb_ep_caps caps;
+} ep_info[NUM_ENDPOINTS] = {
+#define EP_INFO(_name, _type, _dir) \
+	{ \
+		.name = _name, \
+		.caps = USB_EP_CAPS(USB_EP_CAPS_TYPE_ ## _type, \
+				USB_EP_CAPS_DIR_ ## _dir), \
+	}
+
+	EP_INFO("ep0",		CONTROL, ALL),
+	EP_INFO("ep1-bulk",	BULK,	ALL),
+	EP_INFO("ep2-bulk",	BULK,	ALL),
+	EP_INFO("ep3in-int",	INT,	IN),
+	EP_INFO("ep4-iso",	INT,	ALL),
+	EP_INFO("ep5-iso",	ISO,	ALL),
+	EP_INFO("ep6-bulk",	ISO,	ALL),
+	EP_INFO("ep7-bulk",	BULK,	ALL),
+	EP_INFO("ep8in-int",	INT,	IN),
+	EP_INFO("ep9-iso",	ISO,	ALL),
+	EP_INFO("epa-iso",	ISO,	ALL),
+	EP_INFO("epb-bulk",	BULK,	ALL),
+	EP_INFO("epc-bulk",	BULK,	ALL),
+	EP_INFO("epdin-int",	INT,	IN),
+
+#undef EP_INFO
 };
 
 /*-------------------------------------------------------------------------*/
@@ -3200,7 +3197,8 @@ static void __init nbu2ss_drv_ep_init(struct nbu2ss_udc *udc)
 		ep->desc = NULL;
 
 		ep->ep.driver_data = NULL;
-		ep->ep.name = gp_ep_name[i];
+		ep->ep.name = ep_info[i].name;
+		ep->ep.caps = ep_info[i].caps;
 		ep->ep.ops = &nbu2ss_ep_ops;
 
 		usb_ep_set_maxpacket_limit(&ep->ep,
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 05/37] usb: chipidea: udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (3 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 04/37] staging: emxx_udc: add ep capabilities support Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 06/37] usb: dwc2: gadget: " Robert Baldyga
                   ` (31 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/chipidea/udc.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 764f668..eff7cfb 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1624,6 +1624,20 @@ static int init_eps(struct ci_hdrc *ci)
 
 			hwep->ep.name      = hwep->name;
 			hwep->ep.ops       = &usb_ep_ops;
+
+			if (i == 0) {
+				hwep->ep.caps.type_control = true;
+			} else {
+				hwep->ep.caps.type_iso = true;
+				hwep->ep.caps.type_bulk = true;
+				hwep->ep.caps.type_int = true;
+			}
+
+			if (j == TX)
+				hwep->ep.caps.dir_in = true;
+			else
+				hwep->ep.caps.dir_out = true;
+
 			/*
 			 * for ep0: maxP defined in desc, for other
 			 * eps, maxP is set by epautoconfig() called
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 06/37] usb: dwc2: gadget: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (4 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 05/37] usb: chipidea: udc: " Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 07/37] usb: dwc3: " Robert Baldyga
                   ` (30 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/dwc2/gadget.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index 4d47b7c..8771b66 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -3289,6 +3289,19 @@ static void s3c_hsotg_initep(struct dwc2_hsotg *hsotg,
 	usb_ep_set_maxpacket_limit(&hs_ep->ep, epnum ? 1024 : EP0_MPS_LIMIT);
 	hs_ep->ep.ops = &s3c_hsotg_ep_ops;
 
+	if (epnum == 0) {
+		hs_ep->ep.caps.type_control = true;
+	} else {
+		hs_ep->ep.caps.type_iso = true;
+		hs_ep->ep.caps.type_bulk = true;
+		hs_ep->ep.caps.type_int = true;
+	}
+
+	if (dir_in)
+		hs_ep->ep.caps.dir_in = true;
+	else
+		hs_ep->ep.caps.dir_out = true;
+
 	/*
 	 * if we're using dma, we need to set the next-endpoint pointer
 	 * to be something valid.
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 07/37] usb: dwc3: gadget: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (5 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 06/37] usb: dwc2: gadget: " Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 08/37] usb: gadget: amd5536udc: " Robert Baldyga
                   ` (29 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/dwc3/gadget.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 333a7c0..8d1f768 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1713,6 +1713,19 @@ static int dwc3_gadget_init_hw_endpoints(struct dwc3 *dwc,
 				return ret;
 		}
 
+		if (epnum == 0) {
+			dep->endpoint.caps.type_control = true;
+		} else {
+			dep->endpoint.caps.type_iso = true;
+			dep->endpoint.caps.type_bulk = true;
+			dep->endpoint.caps.type_int = true;
+		}
+
+		if (epnum & 1)
+			dep->endpoint.caps.dir_in = true;
+		else
+			dep->endpoint.caps.dir_out = true;
+
 		INIT_LIST_HEAD(&dep->request_list);
 		INIT_LIST_HEAD(&dep->req_queued);
 	}
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 08/37] usb: gadget: amd5536udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (6 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 07/37] usb: dwc3: " Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 09/37] usb: gadget: at91_udc: " Robert Baldyga
                   ` (28 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/amd5536udc.c | 57 ++++++++++++++++++++++++++++++-------
 1 file changed, 47 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/udc/amd5536udc.c b/drivers/usb/gadget/udc/amd5536udc.c
index de7e5e2..1a1d91c 100644
--- a/drivers/usb/gadget/udc/amd5536udc.c
+++ b/drivers/usb/gadget/udc/amd5536udc.c
@@ -138,15 +138,51 @@ static DECLARE_TASKLET(disconnect_tasklet, udc_tasklet_disconnect,
 
 /* endpoint names used for print */
 static const char ep0_string[] = "ep0in";
-static const char *const ep_string[] = {
-	ep0_string,
-	"ep1in-int", "ep2in-bulk", "ep3in-bulk", "ep4in-bulk", "ep5in-bulk",
-	"ep6in-bulk", "ep7in-bulk", "ep8in-bulk", "ep9in-bulk", "ep10in-bulk",
-	"ep11in-bulk", "ep12in-bulk", "ep13in-bulk", "ep14in-bulk",
-	"ep15in-bulk", "ep0out", "ep1out-bulk", "ep2out-bulk", "ep3out-bulk",
-	"ep4out-bulk", "ep5out-bulk", "ep6out-bulk", "ep7out-bulk",
-	"ep8out-bulk", "ep9out-bulk", "ep10out-bulk", "ep11out-bulk",
-	"ep12out-bulk", "ep13out-bulk", "ep14out-bulk", "ep15out-bulk"
+static const struct {
+	const char *name;
+	const struct usb_ep_caps caps;
+} ep_info[] = {
+#define EP_INFO(_name, _type, _dir) \
+	{ \
+		.name = _name, \
+		.caps = USB_EP_CAPS(USB_EP_CAPS_TYPE_ ## _type, \
+				USB_EP_CAPS_DIR_ ## _dir), \
+	}
+
+	EP_INFO(ep0_string,	CONTROL, IN),
+	EP_INFO("ep1in-int",	BULK,	IN),
+	EP_INFO("ep2in-bulk",	BULK,	IN),
+	EP_INFO("ep3in-bulk",	BULK,	IN),
+	EP_INFO("ep4in-bulk",	BULK,	IN),
+	EP_INFO("ep5in-bulk",	BULK,	IN),
+	EP_INFO("ep6in-bulk",	BULK,	IN),
+	EP_INFO("ep7in-bulk",	BULK,	IN),
+	EP_INFO("ep8in-bulk",	BULK,	IN),
+	EP_INFO("ep9in-bulk",	BULK,	IN),
+	EP_INFO("ep10in-bulk",	BULK,	IN),
+	EP_INFO("ep11in-bulk",	BULK,	IN),
+	EP_INFO("ep12in-bulk",	BULK,	IN),
+	EP_INFO("ep13in-bulk",	BULK,	IN),
+	EP_INFO("ep14in-bulk",	BULK,	IN),
+	EP_INFO("ep15in-bulk",	BULK,	IN),
+	EP_INFO("ep0out",	CONTROL, OUT),
+	EP_INFO("ep1out-bulk",	BULK,	OUT),
+	EP_INFO("ep2out-bulk",	BULK,	OUT),
+	EP_INFO("ep3out-bulk",	BULK,	OUT),
+	EP_INFO("ep4out-bulk",	BULK,	OUT),
+	EP_INFO("ep5out-bulk",	BULK,	OUT),
+	EP_INFO("ep6out-bulk",	BULK,	OUT),
+	EP_INFO("ep7out-bulk",	BULK,	OUT),
+	EP_INFO("ep8out-bulk",	BULK,	OUT),
+	EP_INFO("ep9out-bulk",	BULK,	OUT),
+	EP_INFO("ep10out-bulk",	BULK,	OUT),
+	EP_INFO("ep11out-bulk",	BULK,	OUT),
+	EP_INFO("ep12out-bulk",	BULK,	OUT),
+	EP_INFO("ep13out-bulk",	BULK,	OUT),
+	EP_INFO("ep14out-bulk",	BULK,	OUT),
+	EP_INFO("ep15out-bulk",	BULK,	OUT),
+
+#undef EP_INFO
 };
 
 /* DMA usage flag */
@@ -1517,7 +1553,8 @@ static void udc_setup_endpoints(struct udc *dev)
 	for (tmp = 0; tmp < UDC_EP_NUM; tmp++) {
 		ep = &dev->ep[tmp];
 		ep->dev = dev;
-		ep->ep.name = ep_string[tmp];
+		ep->ep.name = ep_info[tmp].name;
+		ep->ep.caps = ep_info[tmp].caps;
 		ep->num = tmp;
 		/* txfifo size is calculated at enable time */
 		ep->txfifo = dev->txfifo;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 09/37] usb: gadget: at91_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (7 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 08/37] usb: gadget: amd5536udc: " Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 10/37] usb: gadget: bcm63xx_udc: " Robert Baldyga
                   ` (27 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/at91_udc.c | 33 ++++++++++++++++++++++++---------
 1 file changed, 24 insertions(+), 9 deletions(-)

diff --git a/drivers/usb/gadget/udc/at91_udc.c b/drivers/usb/gadget/udc/at91_udc.c
index fc42264..a04b073 100644
--- a/drivers/usb/gadget/udc/at91_udc.c
+++ b/drivers/usb/gadget/udc/at91_udc.c
@@ -59,15 +59,29 @@
 #define	DRIVER_VERSION	"3 May 2006"
 
 static const char driver_name [] = "at91_udc";
-static const char * const ep_names[] = {
-	"ep0",
-	"ep1",
-	"ep2",
-	"ep3-int",
-	"ep4",
-	"ep5",
+
+static const struct {
+	const char *name;
+	const struct usb_ep_caps caps;
+} ep_info[] = {
+#define EP_INFO(_name, _type, _dir) \
+	{ \
+		.name = _name, \
+		.caps = USB_EP_CAPS(USB_EP_CAPS_TYPE_ ## _type, \
+				USB_EP_CAPS_DIR_ ## _dir), \
+	}
+
+	EP_INFO("ep0",		CONTROL, ALL),
+	EP_INFO("ep1",		ALL,	ALL),
+	EP_INFO("ep2",		ALL,	ALL),
+	EP_INFO("ep3-int",	INT,	ALL),
+	EP_INFO("ep4",		ALL,	ALL),
+	EP_INFO("ep5",		ALL,	ALL),
+
+#undef EP_INFO
 };
-#define ep0name		ep_names[0]
+
+#define ep0name		ep_info[0].name
 
 #define VBUS_POLL_TIMEOUT	msecs_to_jiffies(1000)
 
@@ -1830,7 +1844,8 @@ static int at91udc_probe(struct platform_device *pdev)
 
 	for (i = 0; i < NUM_ENDPOINTS; i++) {
 		ep = &udc->ep[i];
-		ep->ep.name = ep_names[i];
+		ep->ep.name = ep_info[i].name;
+		ep->ep.caps = ep_info[i].caps;
 		ep->ep.ops = &at91_ep_ops;
 		ep->udc = udc;
 		ep->int_mask = BIT(i);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 10/37] usb: gadget: bcm63xx_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (8 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 09/37] usb: gadget: at91_udc: " Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 11/37] usb: gadget: bdc: " Robert Baldyga
                   ` (26 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/bcm63xx_udc.c | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/gadget/udc/bcm63xx_udc.c b/drivers/usb/gadget/udc/bcm63xx_udc.c
index 9db968b..c5e0894 100644
--- a/drivers/usb/gadget/udc/bcm63xx_udc.c
+++ b/drivers/usb/gadget/udc/bcm63xx_udc.c
@@ -44,9 +44,25 @@
 #define DRV_MODULE_NAME		"bcm63xx_udc"
 
 static const char bcm63xx_ep0name[] = "ep0";
-static const char *const bcm63xx_ep_name[] = {
-	bcm63xx_ep0name,
-	"ep1in-bulk", "ep2out-bulk", "ep3in-int", "ep4out-int",
+
+static const struct {
+	const char *name;
+	const struct usb_ep_caps caps;
+} bcm63xx_ep_info[] = {
+#define EP_INFO(_name, _type, _dir) \
+	{ \
+		.name = _name, \
+		.caps = USB_EP_CAPS(USB_EP_CAPS_TYPE_ ## _type, \
+				USB_EP_CAPS_DIR_ ## _dir), \
+	}
+
+	EP_INFO(bcm63xx_ep0name, CONTROL, ALL),
+	EP_INFO("ep1in-bulk",	BULK,	IN),
+	EP_INFO("ep2out-bulk",	BULK,	OUT),
+	EP_INFO("ep3in-int",	INT,	IN),
+	EP_INFO("ep4out-int",	INT,	OUT),
+
+#undef EP_INFO
 };
 
 static bool use_fullspeed;
@@ -943,7 +959,8 @@ static int bcm63xx_init_udc_hw(struct bcm63xx_udc *udc)
 	for (i = 0; i < BCM63XX_NUM_EP; i++) {
 		struct bcm63xx_ep *bep = &udc->bep[i];
 
-		bep->ep.name = bcm63xx_ep_name[i];
+		bep->ep.name = bcm63xx_ep_info[i].name;
+		bep->ep.caps = bcm63xx_ep_info[i].caps;
 		bep->ep_num = i;
 		bep->ep.ops = &bcm63xx_udc_ep_ops;
 		list_add_tail(&bep->ep.ep_list, &udc->gadget.ep_list);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 11/37] usb: gadget: bdc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (9 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 10/37] usb: gadget: bcm63xx_udc: " Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 12/37] usb: gadget: dummy-hcd: " Robert Baldyga
                   ` (25 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/bdc/bdc_ep.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/usb/gadget/udc/bdc/bdc_ep.c b/drivers/usb/gadget/udc/bdc/bdc_ep.c
index b04980c..f9a8f57 100644
--- a/drivers/usb/gadget/udc/bdc/bdc_ep.c
+++ b/drivers/usb/gadget/udc/bdc/bdc_ep.c
@@ -1952,12 +1952,18 @@ static int init_ep(struct bdc *bdc, u32 epnum, u32 dir)
 	ep->bdc = bdc;
 	ep->dir = dir;
 
+	if (dir)
+		ep->usb_ep.caps.dir_in = true;
+	else
+		ep->usb_ep.caps.dir_out = true;
+
 	/* ep->ep_num is the index inside bdc_ep */
 	if (epnum == 1) {
 		ep->ep_num = 1;
 		bdc->bdc_ep_array[ep->ep_num] = ep;
 		snprintf(ep->name, sizeof(ep->name), "ep%d", epnum - 1);
 		usb_ep_set_maxpacket_limit(&ep->usb_ep, EP0_MAX_PKT_SIZE);
+		ep->usb_ep.caps.type_control = true;
 		ep->comp_desc = NULL;
 		bdc->gadget.ep0 = &ep->usb_ep;
 	} else {
@@ -1971,6 +1977,9 @@ static int init_ep(struct bdc *bdc, u32 epnum, u32 dir)
 			 dir & 1 ? "in" : "out");
 
 		usb_ep_set_maxpacket_limit(&ep->usb_ep, 1024);
+		ep->usb_ep.caps.type_iso = true;
+		ep->usb_ep.caps.type_bulk = true;
+		ep->usb_ep.caps.type_int = true;
 		ep->usb_ep.max_streams = 0;
 		list_add_tail(&ep->usb_ep.ep_list, &bdc->gadget.ep_list);
 	}
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 12/37] usb: gadget: dummy-hcd: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (10 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 11/37] usb: gadget: bdc: " Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 13/37] usb: gadget: fotg210-udc: " Robert Baldyga
                   ` (24 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/dummy_hcd.c | 65 +++++++++++++++++++++++++++++---------
 1 file changed, 50 insertions(+), 15 deletions(-)

diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
index 181112c..69fd29a 100644
--- a/drivers/usb/gadget/udc/dummy_hcd.c
+++ b/drivers/usb/gadget/udc/dummy_hcd.c
@@ -127,23 +127,57 @@ static inline struct dummy_request *usb_request_to_dummy_request
 
 static const char ep0name[] = "ep0";
 
-static const char *const ep_name[] = {
-	ep0name,				/* everyone has ep0 */
+static const struct {
+	const char *name;
+	const struct usb_ep_caps caps;
+} ep_info[] = {
+#define EP_INFO(_name, _type, _dir) \
+	{ \
+		.name = _name, \
+		.caps = USB_EP_CAPS(USB_EP_CAPS_TYPE_ ## _type, \
+				USB_EP_CAPS_DIR_ ## _dir), \
+	}
 
+	/* everyone has ep0 */
+	EP_INFO(ep0name,	CONTROL, ALL),
 	/* act like a pxa250: fifteen fixed function endpoints */
-	"ep1in-bulk", "ep2out-bulk", "ep3in-iso", "ep4out-iso", "ep5in-int",
-	"ep6in-bulk", "ep7out-bulk", "ep8in-iso", "ep9out-iso", "ep10in-int",
-	"ep11in-bulk", "ep12out-bulk", "ep13in-iso", "ep14out-iso",
-		"ep15in-int",
-
+	EP_INFO("ep1in-bulk",	BULK,	IN),
+	EP_INFO("ep2out-bulk",	BULK,	OUT),
+	EP_INFO("ep3in-iso",	ISO,	IN),
+	EP_INFO("ep4out-iso",	ISO,	OUT),
+	EP_INFO("ep5in-int",	INT,	IN),
+	EP_INFO("ep6in-bulk",	BULK,	IN),
+	EP_INFO("ep7out-bulk",	BULK,	OUT),
+	EP_INFO("ep8in-iso",	ISO,	IN),
+	EP_INFO("ep9out-iso",	ISO,	OUT),
+	EP_INFO("ep10in-int",	INT,	IN),
+	EP_INFO("ep11in-bulk",	BULK,	IN),
+	EP_INFO("ep12out-bulk",	BULK,	OUT),
+	EP_INFO("ep13in-iso",	ISO,	IN),
+	EP_INFO("ep14out-iso",	ISO,	OUT),
+	EP_INFO("ep15in-int",	INT,	IN),
 	/* or like sa1100: two fixed function endpoints */
-	"ep1out-bulk", "ep2in-bulk",
-
+	EP_INFO("ep1out-bulk",	BULK,	OUT),
+	EP_INFO("ep2in-bulk",	BULK,	IN),
 	/* and now some generic EPs so we have enough in multi config */
-	"ep3out", "ep4in", "ep5out", "ep6out", "ep7in", "ep8out", "ep9in",
-	"ep10out", "ep11out", "ep12in", "ep13out", "ep14in", "ep15out",
+	EP_INFO("ep3out",	ALL,	OUT),
+	EP_INFO("ep4in",	ALL,	IN),
+	EP_INFO("ep5out",	ALL,	OUT),
+	EP_INFO("ep6out",	ALL,	OUT),
+	EP_INFO("ep7in",	ALL,	IN),
+	EP_INFO("ep8out",	ALL,	OUT),
+	EP_INFO("ep9in",	ALL,	IN),
+	EP_INFO("ep10out",	ALL,	OUT),
+	EP_INFO("ep11out",	ALL,	OUT),
+	EP_INFO("ep12in",	ALL,	IN),
+	EP_INFO("ep13out",	ALL,	OUT),
+	EP_INFO("ep14in",	ALL,	IN),
+	EP_INFO("ep15out",	ALL,	OUT),
+
+#undef EP_INFO
 };
-#define DUMMY_ENDPOINTS	ARRAY_SIZE(ep_name)
+
+#define DUMMY_ENDPOINTS	ARRAY_SIZE(ep_info)
 
 /*-------------------------------------------------------------------------*/
 
@@ -938,9 +972,10 @@ static void init_dummy_udc_hw(struct dummy *dum)
 	for (i = 0; i < DUMMY_ENDPOINTS; i++) {
 		struct dummy_ep	*ep = &dum->ep[i];
 
-		if (!ep_name[i])
+		if (!ep_info[i].name)
 			break;
-		ep->ep.name = ep_name[i];
+		ep->ep.name = ep_info[i].name;
+		ep->ep.caps = ep_info[i].caps;
 		ep->ep.ops = &dummy_ep_ops;
 		list_add_tail(&ep->ep.ep_list, &dum->gadget.ep_list);
 		ep->halted = ep->wedged = ep->already_seen =
@@ -1684,7 +1719,7 @@ static void dummy_timer(unsigned long _dum_hcd)
 	}
 
 	for (i = 0; i < DUMMY_ENDPOINTS; i++) {
-		if (!ep_name[i])
+		if (!ep_info[i].name)
 			break;
 		dum->ep[i].already_seen = 0;
 	}
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 13/37] usb: gadget: fotg210-udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (11 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 12/37] usb: gadget: dummy-hcd: " Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 14/37] usb: gadget: fsl_qe_udc: " Robert Baldyga
                   ` (23 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/fotg210-udc.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/usb/gadget/udc/fotg210-udc.c b/drivers/usb/gadget/udc/fotg210-udc.c
index e547ea7..960c70c 100644
--- a/drivers/usb/gadget/udc/fotg210-udc.c
+++ b/drivers/usb/gadget/udc/fotg210-udc.c
@@ -1153,6 +1153,17 @@ static int fotg210_udc_probe(struct platform_device *pdev)
 		ep->ep.name = fotg210_ep_name[i];
 		ep->ep.ops = &fotg210_ep_ops;
 		usb_ep_set_maxpacket_limit(&ep->ep, (unsigned short) ~0);
+
+		if (i == 0) {
+			ep->ep.caps.type_control = true;
+		} else {
+			ep->ep.caps.type_iso = true;
+			ep->ep.caps.type_bulk = true;
+			ep->ep.caps.type_int = true;
+		}
+
+		ep->ep.caps.dir_in = true;
+		ep->ep.caps.dir_out = true;
 	}
 	usb_ep_set_maxpacket_limit(&fotg210->ep[0]->ep, 0x40);
 	fotg210->gadget.ep0 = &fotg210->ep[0]->ep;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 14/37] usb: gadget: fsl_qe_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (12 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 13/37] usb: gadget: fotg210-udc: " Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:08 ` [PATCH 15/37] usb: gadget: fsl_udc_core: " Robert Baldyga
                   ` (22 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/fsl_qe_udc.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/usb/gadget/udc/fsl_qe_udc.c b/drivers/usb/gadget/udc/fsl_qe_udc.c
index e0822f1..5fb6f8b 100644
--- a/drivers/usb/gadget/udc/fsl_qe_udc.c
+++ b/drivers/usb/gadget/udc/fsl_qe_udc.c
@@ -2417,6 +2417,17 @@ static int qe_ep_config(struct qe_udc *udc, unsigned char pipe_num)
 	strcpy(ep->name, ep_name[pipe_num]);
 	ep->ep.name = ep_name[pipe_num];
 
+	if (pipe_num == 0) {
+		ep->ep.caps.type_control = true;
+	} else {
+		ep->ep.caps.type_iso = true;
+		ep->ep.caps.type_bulk = true;
+		ep->ep.caps.type_int = true;
+	}
+
+	ep->ep.caps.dir_in = true;
+	ep->ep.caps.dir_out = true;
+
 	ep->ep.ops = &qe_ep_ops;
 	ep->stopped = 1;
 	usb_ep_set_maxpacket_limit(&ep->ep, (unsigned short) ~0);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 15/37] usb: gadget: fsl_udc_core: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (13 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 14/37] usb: gadget: fsl_qe_udc: " Robert Baldyga
@ 2015-07-08 11:08 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 16/37] usb: gadget: fusb300_udc: " Robert Baldyga
                   ` (21 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:08 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/fsl_udc_core.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/usb/gadget/udc/fsl_udc_core.c b/drivers/usb/gadget/udc/fsl_udc_core.c
index c60022b..aab5221 100644
--- a/drivers/usb/gadget/udc/fsl_udc_core.c
+++ b/drivers/usb/gadget/udc/fsl_udc_core.c
@@ -2313,6 +2313,19 @@ static int struct_ep_setup(struct fsl_udc *udc, unsigned char index,
 	ep->ep.ops = &fsl_ep_ops;
 	ep->stopped = 0;
 
+	if (index == 0) {
+		ep->ep.caps.type_control = true;
+	} else {
+		ep->ep.caps.type_iso = true;
+		ep->ep.caps.type_bulk = true;
+		ep->ep.caps.type_int = true;
+	}
+
+	if (index & 1)
+		ep->ep.caps.dir_in = true;
+	else
+		ep->ep.caps.dir_out = true;
+
 	/* for ep0: maxP defined in desc
 	 * for other eps, maxP is set by epautoconfig() called by gadget layer
 	 */
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 16/37] usb: gadget: fusb300_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (14 preceding siblings ...)
  2015-07-08 11:08 ` [PATCH 15/37] usb: gadget: fsl_udc_core: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 17/37] usb: gadget: goku_udc: " Robert Baldyga
                   ` (20 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/fusb300_udc.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/usb/gadget/udc/fusb300_udc.c b/drivers/usb/gadget/udc/fusb300_udc.c
index 3970f45..948845c 100644
--- a/drivers/usb/gadget/udc/fusb300_udc.c
+++ b/drivers/usb/gadget/udc/fusb300_udc.c
@@ -1450,6 +1450,17 @@ static int fusb300_probe(struct platform_device *pdev)
 		ep->ep.name = fusb300_ep_name[i];
 		ep->ep.ops = &fusb300_ep_ops;
 		usb_ep_set_maxpacket_limit(&ep->ep, HS_BULK_MAX_PACKET_SIZE);
+
+		if (i == 0) {
+			ep->ep.caps.type_control = true;
+		} else {
+			ep->ep.caps.type_iso = true;
+			ep->ep.caps.type_bulk = true;
+			ep->ep.caps.type_int = true;
+		}
+
+		ep->ep.caps.dir_in = true;
+		ep->ep.caps.dir_out = true;
 	}
 	usb_ep_set_maxpacket_limit(&fusb300->ep[0]->ep, HS_CTL_MAX_PACKET_SIZE);
 	fusb300->ep[0]->epnum = 0;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 17/37] usb: gadget: goku_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (15 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 16/37] usb: gadget: fusb300_udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 18/37] usb: gadget: gr_udc: " Robert Baldyga
                   ` (19 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/goku_udc.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/usb/gadget/udc/goku_udc.c b/drivers/usb/gadget/udc/goku_udc.c
index 9e8d842..46b8d14 100644
--- a/drivers/usb/gadget/udc/goku_udc.c
+++ b/drivers/usb/gadget/udc/goku_udc.c
@@ -1257,6 +1257,14 @@ static void udc_reinit (struct goku_udc *dev)
 		INIT_LIST_HEAD (&ep->queue);
 
 		ep_reset(NULL, ep);
+
+		if (i == 0)
+			ep->ep.caps.type_control = true;
+		else
+			ep->ep.caps.type_bulk = true;
+
+		ep->ep.caps.dir_in = true;
+		ep->ep.caps.dir_out = true;
 	}
 
 	dev->ep[0].reg_mode = NULL;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 18/37] usb: gadget: gr_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (16 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 17/37] usb: gadget: goku_udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 19/37] usb: gadget: lpc32xx_udc: " Robert Baldyga
                   ` (18 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/gr_udc.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/usb/gadget/udc/gr_udc.c b/drivers/usb/gadget/udc/gr_udc.c
index c886887..8aa2593 100644
--- a/drivers/usb/gadget/udc/gr_udc.c
+++ b/drivers/usb/gadget/udc/gr_udc.c
@@ -2018,12 +2018,23 @@ static int gr_ep_init(struct gr_udc *dev, int num, int is_in, u32 maxplimit)
 
 		usb_ep_set_maxpacket_limit(&ep->ep, MAX_CTRL_PL_SIZE);
 		ep->bytes_per_buffer = MAX_CTRL_PL_SIZE;
+
+		ep->ep.caps.type_control = true;
 	} else {
 		usb_ep_set_maxpacket_limit(&ep->ep, (u16)maxplimit);
 		list_add_tail(&ep->ep.ep_list, &dev->gadget.ep_list);
+
+		ep->ep.caps.type_iso = true;
+		ep->ep.caps.type_bulk = true;
+		ep->ep.caps.type_int = true;
 	}
 	list_add_tail(&ep->ep_list, &dev->ep_list);
 
+	if (is_in)
+		ep->ep.caps.dir_in = true;
+	else
+		ep->ep.caps.dir_out = true;
+
 	ep->tailbuf = dma_alloc_coherent(dev->dev, ep->ep.maxpacket_limit,
 					 &ep->tailbuf_paddr, GFP_ATOMIC);
 	if (!ep->tailbuf)
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 19/37] usb: gadget: lpc32xx_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (17 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 18/37] usb: gadget: gr_udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 20/37] usb: gadget: m66592-udc: " Robert Baldyga
                   ` (17 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/lpc32xx_udc.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/drivers/usb/gadget/udc/lpc32xx_udc.c b/drivers/usb/gadget/udc/lpc32xx_udc.c
index 3b6a785..00b5006 100644
--- a/drivers/usb/gadget/udc/lpc32xx_udc.c
+++ b/drivers/usb/gadget/udc/lpc32xx_udc.c
@@ -2575,6 +2575,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep0",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_CONTROL,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 64,
 		.hwep_num_base	= 0,
@@ -2586,6 +2588,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep1-int",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_INT,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 64,
 		.hwep_num_base	= 2,
@@ -2597,6 +2601,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep2-bulk",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 64,
 		.hwep_num_base	= 4,
@@ -2608,6 +2614,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep3-iso",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_ISO,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 1023,
 		.hwep_num_base	= 6,
@@ -2619,6 +2627,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep4-int",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_INT,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 64,
 		.hwep_num_base	= 8,
@@ -2630,6 +2640,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep5-bulk",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 64,
 		.hwep_num_base	= 10,
@@ -2641,6 +2653,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep6-iso",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_ISO,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 1023,
 		.hwep_num_base	= 12,
@@ -2652,6 +2666,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep7-int",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_INT,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 64,
 		.hwep_num_base	= 14,
@@ -2663,6 +2679,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep8-bulk",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 64,
 		.hwep_num_base	= 16,
@@ -2674,6 +2692,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep9-iso",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_ISO,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 1023,
 		.hwep_num_base	= 18,
@@ -2685,6 +2705,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep10-int",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_INT,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 64,
 		.hwep_num_base	= 20,
@@ -2696,6 +2718,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep11-bulk",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 64,
 		.hwep_num_base	= 22,
@@ -2707,6 +2731,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep12-iso",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_ISO,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 1023,
 		.hwep_num_base	= 24,
@@ -2718,6 +2744,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep13-int",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_INT,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 64,
 		.hwep_num_base	= 26,
@@ -2729,6 +2757,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep14-bulk",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 64,
 		.hwep_num_base	= 28,
@@ -2740,6 +2770,8 @@ static const struct lpc32xx_udc controller_template = {
 		.ep = {
 			.name	= "ep15-bulk",
 			.ops	= &lpc32xx_ep_ops,
+			.caps	= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+					USB_EP_CAPS_DIR_ALL),
 		},
 		.maxpacket	= 1023,
 		.hwep_num_base	= 30,
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 20/37] usb: gadget: m66592-udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (18 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 19/37] usb: gadget: lpc32xx_udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 21/37] usb: gadget: mv_u3d_core: " Robert Baldyga
                   ` (16 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/m66592-udc.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/usb/gadget/udc/m66592-udc.c b/drivers/usb/gadget/udc/m66592-udc.c
index 309706f..e404553 100644
--- a/drivers/usb/gadget/udc/m66592-udc.c
+++ b/drivers/usb/gadget/udc/m66592-udc.c
@@ -1644,6 +1644,17 @@ static int m66592_probe(struct platform_device *pdev)
 		ep->ep.name = m66592_ep_name[i];
 		ep->ep.ops = &m66592_ep_ops;
 		usb_ep_set_maxpacket_limit(&ep->ep, 512);
+
+		if (i == 0) {
+			ep->ep.caps.type_control = true;
+		} else {
+			ep->ep.caps.type_iso = true;
+			ep->ep.caps.type_bulk = true;
+			ep->ep.caps.type_int = true;
+		}
+
+		ep->ep.caps.dir_in = true;
+		ep->ep.caps.dir_out = true;
 	}
 	usb_ep_set_maxpacket_limit(&m66592->ep[0].ep, 64);
 	m66592->ep[0].pipenum = 0;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 21/37] usb: gadget: mv_u3d_core: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (19 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 20/37] usb: gadget: m66592-udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 22/37] usb: gadget: mv_udc_core: " Robert Baldyga
                   ` (15 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/mv_u3d_core.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/usb/gadget/udc/mv_u3d_core.c b/drivers/usb/gadget/udc/mv_u3d_core.c
index ea35a24..4c48969 100644
--- a/drivers/usb/gadget/udc/mv_u3d_core.c
+++ b/drivers/usb/gadget/udc/mv_u3d_core.c
@@ -1324,6 +1324,9 @@ static int mv_u3d_eps_init(struct mv_u3d *u3d)
 	ep->ep.ops = &mv_u3d_ep_ops;
 	ep->wedge = 0;
 	usb_ep_set_maxpacket_limit(&ep->ep, MV_U3D_EP0_MAX_PKT_SIZE);
+	ep->ep.caps.type_control = true;
+	ep->ep.caps.dir_in = true;
+	ep->ep.caps.dir_out = true;
 	ep->ep_num = 0;
 	ep->ep.desc = &mv_u3d_ep0_desc;
 	INIT_LIST_HEAD(&ep->queue);
@@ -1339,14 +1342,20 @@ static int mv_u3d_eps_init(struct mv_u3d *u3d)
 		if (i & 1) {
 			snprintf(name, sizeof(name), "ep%din", i >> 1);
 			ep->direction = MV_U3D_EP_DIR_IN;
+			ep->ep.caps.dir_in = true;
 		} else {
 			snprintf(name, sizeof(name), "ep%dout", i >> 1);
 			ep->direction = MV_U3D_EP_DIR_OUT;
+			ep->ep.caps.dir_out = true;
 		}
 		ep->u3d = u3d;
 		strncpy(ep->name, name, sizeof(ep->name));
 		ep->ep.name = ep->name;
 
+		ep->ep.caps.type_iso = true;
+		ep->ep.caps.type_bulk = true;
+		ep->ep.caps.type_int = true;
+
 		ep->ep.ops = &mv_u3d_ep_ops;
 		usb_ep_set_maxpacket_limit(&ep->ep, (unsigned short) ~0);
 		ep->ep_num = i / 2;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 22/37] usb: gadget: mv_udc_core: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (20 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 21/37] usb: gadget: mv_u3d_core: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 23/37] usb: gadget: net2272: " Robert Baldyga
                   ` (14 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/mv_udc_core.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/usb/gadget/udc/mv_udc_core.c b/drivers/usb/gadget/udc/mv_udc_core.c
index d32160d..306a7ff 100644
--- a/drivers/usb/gadget/udc/mv_udc_core.c
+++ b/drivers/usb/gadget/udc/mv_udc_core.c
@@ -1257,6 +1257,9 @@ static int eps_init(struct mv_udc *udc)
 	ep->wedge = 0;
 	ep->stopped = 0;
 	usb_ep_set_maxpacket_limit(&ep->ep, EP0_MAX_PKT_SIZE);
+	ep->ep.caps.type_control = true;
+	ep->ep.caps.dir_in = true;
+	ep->ep.caps.dir_out = true;
 	ep->ep_num = 0;
 	ep->ep.desc = &mv_ep0_desc;
 	INIT_LIST_HEAD(&ep->queue);
@@ -1269,14 +1272,20 @@ static int eps_init(struct mv_udc *udc)
 		if (i % 2) {
 			snprintf(name, sizeof(name), "ep%din", i / 2);
 			ep->direction = EP_DIR_IN;
+			ep->ep.caps.dir_in = true;
 		} else {
 			snprintf(name, sizeof(name), "ep%dout", i / 2);
 			ep->direction = EP_DIR_OUT;
+			ep->ep.caps.dir_out = true;
 		}
 		ep->udc = udc;
 		strncpy(ep->name, name, sizeof(ep->name));
 		ep->ep.name = ep->name;
 
+		ep->ep.caps.type_iso = true;
+		ep->ep.caps.type_bulk = true;
+		ep->ep.caps.type_int = true;
+
 		ep->ep.ops = &mv_ep_ops;
 		ep->stopped = 0;
 		usb_ep_set_maxpacket_limit(&ep->ep, (unsigned short) ~0);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 23/37] usb: gadget: net2272: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (21 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 22/37] usb: gadget: mv_udc_core: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 24/37] usb: gadget: net2280: " Robert Baldyga
                   ` (13 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/net2272.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/usb/gadget/udc/net2272.c b/drivers/usb/gadget/udc/net2272.c
index 195baf3..34ec1ec 100644
--- a/drivers/usb/gadget/udc/net2272.c
+++ b/drivers/usb/gadget/udc/net2272.c
@@ -1404,6 +1404,17 @@ net2272_usb_reinit(struct net2272 *dev)
 		else
 			ep->fifo_size = 64;
 		net2272_ep_reset(ep);
+
+		if (i == 0) {
+			ep->ep.caps.type_control = true;
+		} else {
+			ep->ep.caps.type_iso = true;
+			ep->ep.caps.type_bulk = true;
+			ep->ep.caps.type_int = true;
+		}
+
+		ep->ep.caps.dir_in = true;
+		ep->ep.caps.dir_out = true;
 	}
 	usb_ep_set_maxpacket_limit(&dev->ep[0].ep, 64);
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 24/37] usb: gadget: net2280: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (22 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 23/37] usb: gadget: net2272: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 25/37] usb: gadget: omap_udc: " Robert Baldyga
                   ` (12 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/net2280.c | 50 ++++++++++++++++++++++++++++++----------
 1 file changed, 38 insertions(+), 12 deletions(-)

diff --git a/drivers/usb/gadget/udc/net2280.c b/drivers/usb/gadget/udc/net2280.c
index 2bee912..0295cf7 100644
--- a/drivers/usb/gadget/udc/net2280.c
+++ b/drivers/usb/gadget/udc/net2280.c
@@ -74,19 +74,41 @@ static const char driver_desc[] = DRIVER_DESC;
 
 static const u32 ep_bit[9] = { 0, 17, 2, 19, 4, 1, 18, 3, 20 };
 static const char ep0name[] = "ep0";
-static const char *const ep_name[] = {
-	ep0name,
-	"ep-a", "ep-b", "ep-c", "ep-d",
-	"ep-e", "ep-f", "ep-g", "ep-h",
-};
 
-/* Endpoint names for usb3380 advance mode */
-static const char *const ep_name_adv[] = {
-	ep0name,
-	"ep1in", "ep2out", "ep3in", "ep4out",
-	"ep1out", "ep2in", "ep3out", "ep4in",
+#define EP_INFO(_name, _type, _dir) \
+	{ \
+		.name = _name, \
+		.caps = USB_EP_CAPS(USB_EP_CAPS_TYPE_ ## _type, \
+				USB_EP_CAPS_DIR_ ## _dir), \
+	}
+
+static const struct {
+	const char *name;
+	const struct usb_ep_caps caps;
+} ep_info_dft[] = { /* Default endpoint configuration */
+	EP_INFO(ep0name, CONTROL, ALL),
+	EP_INFO("ep-a",		ALL,	ALL),
+	EP_INFO("ep-b",		ALL,	ALL),
+	EP_INFO("ep-c",		ALL,	ALL),
+	EP_INFO("ep-d",		ALL,	ALL),
+	EP_INFO("ep-e",		ALL,	ALL),
+	EP_INFO("ep-f",		ALL,	ALL),
+	EP_INFO("ep-g",		ALL,	ALL),
+	EP_INFO("ep-h",		ALL,	ALL),
+}, ep_info_adv[] = { /* Endpoints for usb3380 advance mode */
+	EP_INFO(ep0name, CONTROL, ALL),
+	EP_INFO("ep1in",	ALL,	IN),
+	EP_INFO("ep2out",	ALL,	OUT),
+	EP_INFO("ep3in",	ALL,	IN),
+	EP_INFO("ep4out",	ALL,	OUT),
+	EP_INFO("ep1out",	ALL,	OUT),
+	EP_INFO("ep2in",	ALL,	IN),
+	EP_INFO("ep3out",	ALL,	OUT),
+	EP_INFO("ep4in",	ALL,	IN),
 };
 
+#undef EP_INFO
+
 /* mode 0 == ep-{a,b,c,d} 1K fifo each
  * mode 1 == ep-{a,b} 2K fifo each, ep-{c,d} unavailable
  * mode 2 == ep-a 2K fifo, ep-{b,c} 1K each, ep-d unavailable
@@ -2055,7 +2077,8 @@ static void usb_reinit_228x(struct net2280 *dev)
 	for (tmp = 0; tmp < 7; tmp++) {
 		struct net2280_ep	*ep = &dev->ep[tmp];
 
-		ep->ep.name = ep_name[tmp];
+		ep->ep.name = ep_info_dft[tmp].name;
+		ep->ep.caps = ep_info_dft[tmp].caps;
 		ep->dev = dev;
 		ep->num = tmp;
 
@@ -2095,7 +2118,10 @@ static void usb_reinit_338x(struct net2280 *dev)
 	for (i = 0; i < dev->n_ep; i++) {
 		struct net2280_ep *ep = &dev->ep[i];
 
-		ep->ep.name = dev->enhanced_mode ? ep_name_adv[i] : ep_name[i];
+		ep->ep.name = dev->enhanced_mode ? ep_info_adv[i].name :
+						   ep_info_dft[i].name;
+		ep->ep.caps = dev->enhanced_mode ? ep_info_adv[i].caps :
+						   ep_info_dft[i].caps;
 		ep->dev = dev;
 		ep->num = i;
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 25/37] usb: gadget: omap_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (23 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 24/37] usb: gadget: net2280: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 26/37] usb: gadget: pch_ud: " Robert Baldyga
                   ` (11 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/omap_udc.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/drivers/usb/gadget/udc/omap_udc.c b/drivers/usb/gadget/udc/omap_udc.c
index e2fcdb8..9b7d394 100644
--- a/drivers/usb/gadget/udc/omap_udc.c
+++ b/drivers/usb/gadget/udc/omap_udc.c
@@ -2579,6 +2579,28 @@ omap_ep_setup(char *name, u8 addr, u8 type,
 	ep->double_buf = dbuf;
 	ep->udc = udc;
 
+	switch (type) {
+	case USB_ENDPOINT_XFER_CONTROL:
+		ep->ep.caps.type_control = true;
+		ep->ep.caps.dir_in = true;
+		ep->ep.caps.dir_out = true;
+		break;
+	case USB_ENDPOINT_XFER_ISOC:
+		ep->ep.caps.type_iso = true;
+		break;
+	case USB_ENDPOINT_XFER_BULK:
+		ep->ep.caps.type_bulk = true;
+		break;
+	case USB_ENDPOINT_XFER_INT:
+		ep->ep.caps.type_int = true;
+		break;
+	};
+
+	if (addr & USB_DIR_IN)
+		ep->ep.caps.dir_in = true;
+	else
+		ep->ep.caps.dir_out = true;
+
 	ep->ep.name = ep->name;
 	ep->ep.ops = &omap_ep_ops;
 	ep->maxpacket = maxp;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 26/37] usb: gadget: pch_ud: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (24 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 25/37] usb: gadget: omap_udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 27/37] usb: gadget: pxa25x_udc: " Robert Baldyga
                   ` (10 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/pch_udc.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/gadget/udc/pch_udc.c b/drivers/usb/gadget/udc/pch_udc.c
index 613547f..cc8fb3c 100644
--- a/drivers/usb/gadget/udc/pch_udc.c
+++ b/drivers/usb/gadget/udc/pch_udc.c
@@ -2895,11 +2895,21 @@ static void pch_udc_pcd_reinit(struct pch_udc_dev *dev)
 		ep->in = ~i & 1;
 		ep->ep.name = ep_string[i];
 		ep->ep.ops = &pch_udc_ep_ops;
-		if (ep->in)
+		if (ep->in) {
 			ep->offset_addr = ep->num * UDC_EP_REG_SHIFT;
-		else
+			ep->ep.caps.dir_in = true;
+		} else {
 			ep->offset_addr = (UDC_EPINT_OUT_SHIFT + ep->num) *
 					  UDC_EP_REG_SHIFT;
+			ep->ep.caps.dir_out = true;
+		}
+		if (i == UDC_EP0IN_IDX || i == UDC_EP0OUT_IDX) {
+			ep->ep.caps.type_control = true;
+		} else {
+			ep->ep.caps.type_iso = true;
+			ep->ep.caps.type_bulk = true;
+			ep->ep.caps.type_int = true;
+		}
 		/* need to set ep->ep.maxpacket and set Default Configuration?*/
 		usb_ep_set_maxpacket_limit(&ep->ep, UDC_BULK_MAX_PKT_SIZE);
 		list_add_tail(&ep->ep.ep_list, &dev->gadget.ep_list);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 27/37] usb: gadget: pxa25x_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (25 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 26/37] usb: gadget: pch_ud: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 28/37] usb: gadget: pxa27x_udc: " Robert Baldyga
                   ` (9 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/pxa25x_udc.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/drivers/usb/gadget/udc/pxa25x_udc.c b/drivers/usb/gadget/udc/pxa25x_udc.c
index f6cbe66..1301e29 100644
--- a/drivers/usb/gadget/udc/pxa25x_udc.c
+++ b/drivers/usb/gadget/udc/pxa25x_udc.c
@@ -1821,6 +1821,8 @@ static struct pxa25x_udc memory = {
 			.name		= ep0name,
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= EP0_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_CONTROL,
+						USB_EP_CAPS_DIR_ALL),
 		},
 		.dev		= &memory,
 		.reg_udccs	= &UDCCS0,
@@ -1833,6 +1835,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep1in-bulk",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= BULK_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+						USB_EP_CAPS_DIR_IN),
 		},
 		.dev		= &memory,
 		.fifo_size	= BULK_FIFO_SIZE,
@@ -1846,6 +1850,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep2out-bulk",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= BULK_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+						USB_EP_CAPS_DIR_OUT),
 		},
 		.dev		= &memory,
 		.fifo_size	= BULK_FIFO_SIZE,
@@ -1861,6 +1867,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep3in-iso",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= ISO_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_ISO,
+						USB_EP_CAPS_DIR_IN),
 		},
 		.dev		= &memory,
 		.fifo_size	= ISO_FIFO_SIZE,
@@ -1874,6 +1882,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep4out-iso",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= ISO_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_ISO,
+						USB_EP_CAPS_DIR_OUT),
 		},
 		.dev		= &memory,
 		.fifo_size	= ISO_FIFO_SIZE,
@@ -1888,6 +1898,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep5in-int",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= INT_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_INT,
+						USB_EP_CAPS_DIR_IN),
 		},
 		.dev		= &memory,
 		.fifo_size	= INT_FIFO_SIZE,
@@ -1903,6 +1915,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep6in-bulk",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= BULK_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+						USB_EP_CAPS_DIR_IN),
 		},
 		.dev		= &memory,
 		.fifo_size	= BULK_FIFO_SIZE,
@@ -1916,6 +1930,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep7out-bulk",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= BULK_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+						USB_EP_CAPS_DIR_OUT),
 		},
 		.dev		= &memory,
 		.fifo_size	= BULK_FIFO_SIZE,
@@ -1930,6 +1946,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep8in-iso",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= ISO_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_ISO,
+						USB_EP_CAPS_DIR_IN),
 		},
 		.dev		= &memory,
 		.fifo_size	= ISO_FIFO_SIZE,
@@ -1943,6 +1961,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep9out-iso",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= ISO_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_ISO,
+						USB_EP_CAPS_DIR_OUT),
 		},
 		.dev		= &memory,
 		.fifo_size	= ISO_FIFO_SIZE,
@@ -1957,6 +1977,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep10in-int",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= INT_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_INT,
+						USB_EP_CAPS_DIR_IN),
 		},
 		.dev		= &memory,
 		.fifo_size	= INT_FIFO_SIZE,
@@ -1972,6 +1994,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep11in-bulk",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= BULK_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+						USB_EP_CAPS_DIR_IN),
 		},
 		.dev		= &memory,
 		.fifo_size	= BULK_FIFO_SIZE,
@@ -1985,6 +2009,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep12out-bulk",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= BULK_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+						USB_EP_CAPS_DIR_OUT),
 		},
 		.dev		= &memory,
 		.fifo_size	= BULK_FIFO_SIZE,
@@ -1999,6 +2025,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep13in-iso",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= ISO_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_ISO,
+						USB_EP_CAPS_DIR_IN),
 		},
 		.dev		= &memory,
 		.fifo_size	= ISO_FIFO_SIZE,
@@ -2012,6 +2040,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep14out-iso",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= ISO_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_ISO,
+						USB_EP_CAPS_DIR_OUT),
 		},
 		.dev		= &memory,
 		.fifo_size	= ISO_FIFO_SIZE,
@@ -2026,6 +2056,8 @@ static struct pxa25x_udc memory = {
 			.name		= "ep15in-int",
 			.ops		= &pxa25x_ep_ops,
 			.maxpacket	= INT_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_INT,
+						USB_EP_CAPS_DIR_IN),
 		},
 		.dev		= &memory,
 		.fifo_size	= INT_FIFO_SIZE,
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 28/37] usb: gadget: pxa27x_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (26 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 27/37] usb: gadget: pxa25x_udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 19:26   ` Robert Jarzmik
  2015-07-08 11:09 ` [PATCH 29/37] usb: gadget: r8a66597-udc: " Robert Baldyga
                   ` (8 subsequent siblings)
  36 siblings, 1 reply; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/pxa27x_udc.h | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

diff --git a/drivers/usb/gadget/udc/pxa27x_udc.h b/drivers/usb/gadget/udc/pxa27x_udc.h
index 11e1423..ded058c 100644
--- a/drivers/usb/gadget/udc/pxa27x_udc.h
+++ b/drivers/usb/gadget/udc/pxa27x_udc.h
@@ -234,25 +234,28 @@
 /*
  * Endpoint definition helpers
  */
-#define USB_EP_DEF(addr, bname, dir, type, maxpkt) \
-{ .usb_ep = { .name = bname, .ops = &pxa_ep_ops, .maxpacket = maxpkt, }, \
+#define USB_EP_DEF(addr, bname, dir, type, maxpkt, ctype, cdir) \
+{ .usb_ep = {	.name = bname, .ops = &pxa_ep_ops, .maxpacket = maxpkt, \
+		.caps = USB_EP_CAPS(USB_EP_CAPS_TYPE_ ## ctype, \
+				    USB_EP_CAPS_DIR_ ## cdir), }, \
   .desc = {	.bEndpointAddress = addr | (dir ? USB_DIR_IN : 0), \
-		.bmAttributes = type, \
+		.bmAttributes = USB_ENDPOINT_XFER_ ## type, \
 		.wMaxPacketSize = maxpkt, }, \
   .dev = &memory \
 }
-#define USB_EP_BULK(addr, bname, dir) \
-  USB_EP_DEF(addr, bname, dir, USB_ENDPOINT_XFER_BULK, BULK_FIFO_SIZE)
-#define USB_EP_ISO(addr, bname, dir) \
-  USB_EP_DEF(addr, bname, dir, USB_ENDPOINT_XFER_ISOC, ISO_FIFO_SIZE)
-#define USB_EP_INT(addr, bname, dir) \
-  USB_EP_DEF(addr, bname, dir, USB_ENDPOINT_XFER_INT, INT_FIFO_SIZE)
-#define USB_EP_IN_BULK(n)	USB_EP_BULK(n, "ep" #n "in-bulk", 1)
-#define USB_EP_OUT_BULK(n)	USB_EP_BULK(n, "ep" #n "out-bulk", 0)
-#define USB_EP_IN_ISO(n)	USB_EP_ISO(n,  "ep" #n "in-iso", 1)
-#define USB_EP_OUT_ISO(n)	USB_EP_ISO(n,  "ep" #n "out-iso", 0)
-#define USB_EP_IN_INT(n)	USB_EP_INT(n,  "ep" #n "in-int", 1)
-#define USB_EP_CTRL		USB_EP_DEF(0,  "ep0", 0, 0, EP0_FIFO_SIZE)
+#define USB_EP_BULK(addr, bname, dir, cdir) \
+	USB_EP_DEF(addr, bname, dir, BULK, BULK_FIFO_SIZE, BULK, cdir)
+#define USB_EP_ISO(addr, bname, dir, cdir) \
+	USB_EP_DEF(addr, bname, dir, ISOC, ISO_FIFO_SIZE, ISO, cdir)
+#define USB_EP_INT(addr, bname, dir, cdir) \
+	USB_EP_DEF(addr, bname, dir, INT, INT_FIFO_SIZE, INT, cdir)
+#define USB_EP_IN_BULK(n)	USB_EP_BULK(n, "ep" #n "in-bulk", 1, IN)
+#define USB_EP_OUT_BULK(n)	USB_EP_BULK(n, "ep" #n "out-bulk", 0, OUT)
+#define USB_EP_IN_ISO(n)	USB_EP_ISO(n,  "ep" #n "in-iso", 1, IN)
+#define USB_EP_OUT_ISO(n)	USB_EP_ISO(n,  "ep" #n "out-iso", 0, OUT)
+#define USB_EP_IN_INT(n)	USB_EP_INT(n,  "ep" #n "in-int", 1, IN)
+#define USB_EP_CTRL		USB_EP_DEF(0,  "ep0", 0, CONTROL, \
+					   EP0_FIFO_SIZE, CONTROL, ALL)
 
 #define PXA_EP_DEF(_idx, _addr, dir, _type, maxpkt, _config, iface, altset) \
 { \
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 29/37] usb: gadget: r8a66597-udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (27 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 28/37] usb: gadget: pxa27x_udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 30/37] usb: gadget: s3c-hsudc: " Robert Baldyga
                   ` (7 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/r8a66597-udc.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/usb/gadget/udc/r8a66597-udc.c b/drivers/usb/gadget/udc/r8a66597-udc.c
index 0293f71..baa0609 100644
--- a/drivers/usb/gadget/udc/r8a66597-udc.c
+++ b/drivers/usb/gadget/udc/r8a66597-udc.c
@@ -1935,6 +1935,16 @@ static int r8a66597_probe(struct platform_device *pdev)
 		ep->ep.name = r8a66597_ep_name[i];
 		ep->ep.ops = &r8a66597_ep_ops;
 		usb_ep_set_maxpacket_limit(&ep->ep, 512);
+
+		if (i == 0) {
+			ep->ep.caps.type_control = true;
+		} else {
+			ep->ep.caps.type_iso = true;
+			ep->ep.caps.type_bulk = true;
+			ep->ep.caps.type_int = true;
+		}
+		ep->ep.caps.dir_in = true;
+		ep->ep.caps.dir_out = true;
 	}
 	usb_ep_set_maxpacket_limit(&r8a66597->ep[0].ep, 64);
 	r8a66597->ep[0].pipenum = 0;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 30/37] usb: gadget: s3c-hsudc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (28 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 29/37] usb: gadget: r8a66597-udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 31/37] usb: gadget: s3c2410_udc: " Robert Baldyga
                   ` (6 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/s3c-hsudc.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/usb/gadget/udc/s3c-hsudc.c b/drivers/usb/gadget/udc/s3c-hsudc.c
index 85a712a..e9def42 100644
--- a/drivers/usb/gadget/udc/s3c-hsudc.c
+++ b/drivers/usb/gadget/udc/s3c-hsudc.c
@@ -1005,6 +1005,21 @@ static void s3c_hsudc_initep(struct s3c_hsudc *hsudc,
 	hsep->stopped = 0;
 	hsep->wedge = 0;
 
+	if (epnum == 0) {
+		hsep->ep.caps.type_control = true;
+		hsep->ep.caps.dir_in = true;
+		hsep->ep.caps.dir_out = true;
+	} else {
+		hsep->ep.caps.type_iso = true;
+		hsep->ep.caps.type_bulk = true;
+		hsep->ep.caps.type_int = true;
+	}
+
+	if (epnum & 1)
+		hsep->ep.caps.dir_in = true;
+	else
+		hsep->ep.caps.dir_out = true;
+
 	set_index(hsudc, epnum);
 	writel(hsep->ep.maxpacket, hsudc->regs + S3C_MPR);
 }
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 31/37] usb: gadget: s3c2410_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (29 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 30/37] usb: gadget: s3c-hsudc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 32/37] usb: gadget: udc-xilinx: " Robert Baldyga
                   ` (5 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/s3c2410_udc.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/usb/gadget/udc/s3c2410_udc.c b/drivers/usb/gadget/udc/s3c2410_udc.c
index 5d9aa81..eb3571e 100644
--- a/drivers/usb/gadget/udc/s3c2410_udc.c
+++ b/drivers/usb/gadget/udc/s3c2410_udc.c
@@ -1691,6 +1691,8 @@ static struct s3c2410_udc memory = {
 			.name		= ep0name,
 			.ops		= &s3c2410_ep_ops,
 			.maxpacket	= EP0_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_CONTROL,
+						USB_EP_CAPS_DIR_ALL),
 		},
 		.dev		= &memory,
 	},
@@ -1702,6 +1704,8 @@ static struct s3c2410_udc memory = {
 			.name		= "ep1-bulk",
 			.ops		= &s3c2410_ep_ops,
 			.maxpacket	= EP_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+						USB_EP_CAPS_DIR_ALL),
 		},
 		.dev		= &memory,
 		.fifo_size	= EP_FIFO_SIZE,
@@ -1714,6 +1718,8 @@ static struct s3c2410_udc memory = {
 			.name		= "ep2-bulk",
 			.ops		= &s3c2410_ep_ops,
 			.maxpacket	= EP_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+						USB_EP_CAPS_DIR_ALL),
 		},
 		.dev		= &memory,
 		.fifo_size	= EP_FIFO_SIZE,
@@ -1726,6 +1732,8 @@ static struct s3c2410_udc memory = {
 			.name		= "ep3-bulk",
 			.ops		= &s3c2410_ep_ops,
 			.maxpacket	= EP_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+						USB_EP_CAPS_DIR_ALL),
 		},
 		.dev		= &memory,
 		.fifo_size	= EP_FIFO_SIZE,
@@ -1738,6 +1746,8 @@ static struct s3c2410_udc memory = {
 			.name		= "ep4-bulk",
 			.ops		= &s3c2410_ep_ops,
 			.maxpacket	= EP_FIFO_SIZE,
+			.caps		= USB_EP_CAPS(USB_EP_CAPS_TYPE_BULK,
+						USB_EP_CAPS_DIR_ALL),
 		},
 		.dev		= &memory,
 		.fifo_size	= EP_FIFO_SIZE,
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 32/37] usb: gadget: udc-xilinx: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (30 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 31/37] usb: gadget: s3c2410_udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 33/37] usb: isp1760: udc: " Robert Baldyga
                   ` (4 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/udc-xilinx.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/usb/gadget/udc/udc-xilinx.c b/drivers/usb/gadget/udc/udc-xilinx.c
index 1f24274..1cbb0ac 100644
--- a/drivers/usb/gadget/udc/udc-xilinx.c
+++ b/drivers/usb/gadget/udc/udc-xilinx.c
@@ -1317,12 +1317,21 @@ static void xudc_eps_init(struct xusb_udc *udc)
 			snprintf(ep->name, EPNAME_SIZE, "ep%d", ep_number);
 			ep->ep_usb.name = ep->name;
 			ep->ep_usb.ops = &xusb_ep_ops;
+
+			ep->ep_usb.caps.type_iso = true;
+			ep->ep_usb.caps.type_bulk = true;
+			ep->ep_usb.caps.type_int = true;
 		} else {
 			ep->ep_usb.name = ep0name;
 			usb_ep_set_maxpacket_limit(&ep->ep_usb, EP0_MAX_PACKET);
 			ep->ep_usb.ops = &xusb_ep0_ops;
+
+			ep->ep_usb.caps.type_control = true;
 		}
 
+		ep->ep_usb.caps.dir_in = true;
+		ep->ep_usb.caps.dir_out = true;
+
 		ep->udc = udc;
 		ep->epnumber = ep_number;
 		ep->desc = NULL;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 33/37] usb: isp1760: udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (31 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 32/37] usb: gadget: udc-xilinx: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 34/37] usb: musb: gadget: " Robert Baldyga
                   ` (3 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/isp1760/isp1760-udc.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/usb/isp1760/isp1760-udc.c b/drivers/usb/isp1760/isp1760-udc.c
index 3699962..1c3d0fd 100644
--- a/drivers/usb/isp1760/isp1760-udc.c
+++ b/drivers/usb/isp1760/isp1760-udc.c
@@ -1383,13 +1383,24 @@ static void isp1760_udc_init_eps(struct isp1760_udc *udc)
 		 */
 		if (ep_num == 0) {
 			usb_ep_set_maxpacket_limit(&ep->ep, 64);
+			ep->ep.caps.type_control = true;
+			ep->ep.caps.dir_in = true;
+			ep->ep.caps.dir_out = true;
 			ep->maxpacket = 64;
 			udc->gadget.ep0 = &ep->ep;
 		} else {
 			usb_ep_set_maxpacket_limit(&ep->ep, 512);
+			ep->ep.caps.type_iso = true;
+			ep->ep.caps.type_bulk = true;
+			ep->ep.caps.type_int = true;
 			ep->maxpacket = 0;
 			list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list);
 		}
+
+		if (is_in)
+			ep->ep.caps.dir_in = true;
+		else
+			ep->ep.caps.dir_out = true;
 	}
 }
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 34/37] usb: musb: gadget: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (32 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 33/37] usb: isp1760: udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 35/37] usb: renesas: " Robert Baldyga
                   ` (2 subsequent siblings)
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/musb/musb_gadget.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 625d482f..043248a 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1729,6 +1729,7 @@ init_peripheral_ep(struct musb *musb, struct musb_ep *ep, u8 epnum, int is_in)
 	INIT_LIST_HEAD(&ep->end_point.ep_list);
 	if (!epnum) {
 		usb_ep_set_maxpacket_limit(&ep->end_point, 64);
+		ep->end_point.caps.type_control = true;
 		ep->end_point.ops = &musb_g_ep0_ops;
 		musb->g.ep0 = &ep->end_point;
 	} else {
@@ -1736,9 +1737,20 @@ init_peripheral_ep(struct musb *musb, struct musb_ep *ep, u8 epnum, int is_in)
 			usb_ep_set_maxpacket_limit(&ep->end_point, hw_ep->max_packet_sz_tx);
 		else
 			usb_ep_set_maxpacket_limit(&ep->end_point, hw_ep->max_packet_sz_rx);
+		ep->end_point.caps.type_iso = true;
+		ep->end_point.caps.type_bulk = true;
+		ep->end_point.caps.type_int = true;
 		ep->end_point.ops = &musb_ep_ops;
 		list_add_tail(&ep->end_point.ep_list, &musb->g.ep_list);
 	}
+
+	if (!epnum || hw_ep->is_shared_fifo) {
+		ep->end_point.caps.dir_in = true;
+		ep->end_point.caps.dir_out = true;
+	} else if (is_in)
+		ep->end_point.caps.dir_in = true;
+	else
+		ep->end_point.caps.dir_out = true;
 }
 
 /*
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 35/37] usb: renesas: gadget: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (33 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 34/37] usb: musb: gadget: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 36/37] usb: gadget: atmel_usba_udc: " Robert Baldyga
  2015-07-08 11:09 ` [PATCH 37/37] usb: gadget: epautoconf: add endpoint capabilities flags verification Robert Baldyga
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/renesas_usbhs/mod_gadget.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
index dc2aa32..ed8d890 100644
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -1041,12 +1041,18 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
 		if (usbhsg_is_dcp(uep)) {
 			gpriv->gadget.ep0 = &uep->ep;
 			usb_ep_set_maxpacket_limit(&uep->ep, 64);
+			uep->ep.caps.type_control = true;
 		}
 		/* init normal pipe */
 		else {
 			usb_ep_set_maxpacket_limit(&uep->ep, 512);
+			uep->ep.caps.type_iso = true;
+			uep->ep.caps.type_bulk = true;
+			uep->ep.caps.type_int = true;
 			list_add_tail(&uep->ep.ep_list, &gpriv->gadget.ep_list);
 		}
+		uep->ep.caps.dir_in = true;
+		uep->ep.caps.dir_out = true;
 	}
 
 	ret = usb_add_gadget_udc(dev, &gpriv->gadget);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 36/37] usb: gadget: atmel_usba_udc: add ep capabilities support
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (34 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 35/37] usb: renesas: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  2015-07-08 11:09 ` [PATCH 37/37] usb: gadget: epautoconf: add endpoint capabilities flags verification Robert Baldyga
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Convert endpoint configuration to new capabilities model.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/udc/atmel_usba_udc.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index 37d414e..267d84f 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -2067,6 +2067,17 @@ static struct usba_ep * usba_udc_pdata(struct platform_device *pdev,
 		ep->can_dma = pdata->ep[i].can_dma;
 		ep->can_isoc = pdata->ep[i].can_isoc;
 
+		if (i == 0) {
+			ep->ep.caps.type_control = true;
+		} else {
+			ep->ep.caps.type_iso = ep->can_isoc;
+			ep->ep.caps.type_bulk = true;
+			ep->ep.caps.type_int = true;
+		}
+
+		ep->ep.caps.dir_in = true;
+		ep->ep.caps.dir_out = true;
+
 		if (i)
 			list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list);
 	}
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 37/37] usb: gadget: epautoconf: add endpoint capabilities flags verification
  2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
                   ` (35 preceding siblings ...)
  2015-07-08 11:09 ` [PATCH 36/37] usb: gadget: atmel_usba_udc: " Robert Baldyga
@ 2015-07-08 11:09 ` Robert Baldyga
  36 siblings, 0 replies; 39+ messages in thread
From: Robert Baldyga @ 2015-07-08 11:09 UTC (permalink / raw)
  To: gregkh
  Cc: Peter.Chen, johnyoun, balbi, dahlmann.thomas, nicolas.ferre,
	cernekee, leoli, daniel, haojian.zhuang, robert.jarzmik,
	michal.simek, devel, linux-kernel, linux-usb, linux-omap,
	linux-geode, linux-arm-kernel, linuxppc-dev, andrzej.p,
	m.szyprowski, Robert Baldyga

Introduce endpoint matching mechanism basing on endpoint capabilities
flags. We check if endpoint supports transfer type and direction requested
in ep descriptor. Since we have this new endpoint matching mechanism
there is no need to have old code guessing endpoint capabilities basing
on its name, so we are getting rid of it.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
---
 drivers/usb/gadget/epautoconf.c | 72 +++++++++++++----------------------------
 1 file changed, 22 insertions(+), 50 deletions(-)

diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c
index 8e00ca7..38df22a 100644
--- a/drivers/usb/gadget/epautoconf.c
+++ b/drivers/usb/gadget/epautoconf.c
@@ -47,7 +47,6 @@ ep_matches (
 )
 {
 	u8		type;
-	const char	*tmp;
 	u16		max;
 
 	int		num_req_streams = 0;
@@ -56,58 +55,31 @@ ep_matches (
 	if (ep->claimed)
 		return 0;
 
-	/* only support ep0 for portable CONTROL traffic */
 	type = usb_endpoint_type(desc);
-	if (USB_ENDPOINT_XFER_CONTROL == type)
-		return 0;
-
-	/* some other naming convention */
-	if ('e' != ep->name[0])
+	switch (type) {
+	case USB_ENDPOINT_XFER_CONTROL:
+		/* only support ep0 for portable CONTROL traffic */
 		return 0;
+	case USB_ENDPOINT_XFER_ISOC:
+		if (!ep->caps.type_iso)
+			return 0;
+		break;
+	case USB_ENDPOINT_XFER_BULK:
+		if (!ep->caps.type_bulk)
+			return 0;
+		break;
+	case USB_ENDPOINT_XFER_INT:
+		if (!ep->caps.type_int)
+			return 0;
+		break;
+	}
 
-	/* type-restriction:  "-iso", "-bulk", or "-int".
-	 * direction-restriction:  "in", "out".
-	 */
-	if ('-' != ep->name[2]) {
-		tmp = strrchr (ep->name, '-');
-		if (tmp) {
-			switch (type) {
-			case USB_ENDPOINT_XFER_INT:
-				/* bulk endpoints handle interrupt transfers,
-				 * except the toggle-quirky iso-synch kind
-				 */
-				if ('s' == tmp[2])	// == "-iso"
-					return 0;
-				/* for now, avoid PXA "interrupt-in";
-				 * it's documented as never using DATA1.
-				 */
-				if (gadget_is_pxa (gadget)
-						&& 'i' == tmp [1])
-					return 0;
-				break;
-			case USB_ENDPOINT_XFER_BULK:
-				if ('b' != tmp[1])	// != "-bulk"
-					return 0;
-				break;
-			case USB_ENDPOINT_XFER_ISOC:
-				if ('s' != tmp[2])	// != "-iso"
-					return 0;
-			}
-		} else {
-			tmp = ep->name + strlen (ep->name);
-		}
-
-		/* direction-restriction:  "..in-..", "out-.." */
-		tmp--;
-		if (!isdigit (*tmp)) {
-			if (desc->bEndpointAddress & USB_DIR_IN) {
-				if ('n' != *tmp)
-					return 0;
-			} else {
-				if ('t' != *tmp)
-					return 0;
-			}
-		}
+	if (usb_endpoint_dir_in(desc)) {
+		if (!ep->caps.dir_in)
+			return 0;
+	} else {
+		if (!ep->caps.dir_out)
+			return 0;
 	}
 
 	/*
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* Re: [PATCH 28/37] usb: gadget: pxa27x_udc: add ep capabilities support
  2015-07-08 11:09 ` [PATCH 28/37] usb: gadget: pxa27x_udc: " Robert Baldyga
@ 2015-07-08 19:26   ` Robert Jarzmik
  0 siblings, 0 replies; 39+ messages in thread
From: Robert Jarzmik @ 2015-07-08 19:26 UTC (permalink / raw)
  To: Robert Baldyga
  Cc: gregkh, devel, linux-usb, m.szyprowski, linux-arm-kernel,
	johnyoun, linuxppc-dev, cernekee, nicolas.ferre, michal.simek,
	balbi, linux-kernel, haojian.zhuang, linux-omap, Peter.Chen,
	dahlmann.thomas, andrzej.p, leoli, daniel, linux-geode

Robert Baldyga <r.baldyga@samsung.com> writes:

> Convert endpoint configuration to new capabilities model.
The commit message is very short to judge the patch's correctness.

I'll side up with Felipe's opinion. If it's fine by him, so it is by me.

Cheers.

--
Robert

^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2015-07-08 19:29 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-08 11:08 [PATCH 00/37] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
2015-07-08 11:08 ` [PATCH 01/37] usb: gadget: encapsulate endpoint " Robert Baldyga
2015-07-08 11:08 ` [PATCH 02/37] usb: gadget: add endpoint capabilities flags Robert Baldyga
2015-07-08 11:08 ` [PATCH 03/37] usb: gadget: add endpoint capabilities helper macros Robert Baldyga
2015-07-08 11:08 ` [PATCH 04/37] staging: emxx_udc: add ep capabilities support Robert Baldyga
2015-07-08 11:08 ` [PATCH 05/37] usb: chipidea: udc: " Robert Baldyga
2015-07-08 11:08 ` [PATCH 06/37] usb: dwc2: gadget: " Robert Baldyga
2015-07-08 11:08 ` [PATCH 07/37] usb: dwc3: " Robert Baldyga
2015-07-08 11:08 ` [PATCH 08/37] usb: gadget: amd5536udc: " Robert Baldyga
2015-07-08 11:08 ` [PATCH 09/37] usb: gadget: at91_udc: " Robert Baldyga
2015-07-08 11:08 ` [PATCH 10/37] usb: gadget: bcm63xx_udc: " Robert Baldyga
2015-07-08 11:08 ` [PATCH 11/37] usb: gadget: bdc: " Robert Baldyga
2015-07-08 11:08 ` [PATCH 12/37] usb: gadget: dummy-hcd: " Robert Baldyga
2015-07-08 11:08 ` [PATCH 13/37] usb: gadget: fotg210-udc: " Robert Baldyga
2015-07-08 11:08 ` [PATCH 14/37] usb: gadget: fsl_qe_udc: " Robert Baldyga
2015-07-08 11:08 ` [PATCH 15/37] usb: gadget: fsl_udc_core: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 16/37] usb: gadget: fusb300_udc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 17/37] usb: gadget: goku_udc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 18/37] usb: gadget: gr_udc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 19/37] usb: gadget: lpc32xx_udc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 20/37] usb: gadget: m66592-udc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 21/37] usb: gadget: mv_u3d_core: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 22/37] usb: gadget: mv_udc_core: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 23/37] usb: gadget: net2272: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 24/37] usb: gadget: net2280: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 25/37] usb: gadget: omap_udc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 26/37] usb: gadget: pch_ud: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 27/37] usb: gadget: pxa25x_udc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 28/37] usb: gadget: pxa27x_udc: " Robert Baldyga
2015-07-08 19:26   ` Robert Jarzmik
2015-07-08 11:09 ` [PATCH 29/37] usb: gadget: r8a66597-udc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 30/37] usb: gadget: s3c-hsudc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 31/37] usb: gadget: s3c2410_udc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 32/37] usb: gadget: udc-xilinx: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 33/37] usb: isp1760: udc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 34/37] usb: musb: gadget: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 35/37] usb: renesas: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 36/37] usb: gadget: atmel_usba_udc: " Robert Baldyga
2015-07-08 11:09 ` [PATCH 37/37] usb: gadget: epautoconf: add endpoint capabilities flags verification Robert Baldyga

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).