All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Baldyga <r.baldyga@samsung.com>
To: gregkh@linuxfoundation.org, balbi@ti.com
Cc: Peter.Chen@freescale.com, johnyoun@synopsys.com,
	dahlmann.thomas@arcor.de, nicolas.ferre@atmel.com,
	cernekee@gmail.com, leoli@freescale.com, daniel@zonque.org,
	haojian.zhuang@gmail.com, robert.jarzmik@free.fr,
	michal.simek@xilinx.com, devel@driverdev.osuosl.org,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
	linux-omap@vger.kernel.org, linux-geode@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, andrzej.p@samsung.com,
	m.szyprowski@samsung.com, Robert Baldyga <r.baldyga@samsung.com>
Subject: [PATCH v3 02/46] usb: gadget: add endpoint capabilities flags
Date: Wed, 15 Jul 2015 08:31:49 +0200	[thread overview]
Message-ID: <1436941953-1327-3-git-send-email-r.baldyga@samsung.com> (raw)
In-Reply-To: <1436941953-1327-1-git-send-email-r.baldyga@samsung.com>

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


WARNING: multiple messages have this Message-ID (diff)
From: Robert Baldyga <r.baldyga@samsung.com>
To: gregkh@linuxfoundation.org, balbi@ti.com
Cc: devel@driverdev.osuosl.org, linux-usb@vger.kernel.org,
	m.szyprowski@samsung.com, linux-arm-kernel@lists.infradead.org,
	johnyoun@synopsys.com, linuxppc-dev@lists.ozlabs.org,
	cernekee@gmail.com, nicolas.ferre@atmel.com,
	michal.simek@xilinx.com, haojian.zhuang@gmail.com,
	linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org,
	Robert Baldyga <r.baldyga@samsung.com>,
	Peter.Chen@freescale.com, dahlmann.thomas@arcor.de,
	andrzej.p@samsung.com, leoli@freescale.com,
	robert.jarzmik@free.fr, daniel@zonque.org,
	linux-geode@lists.infradead.org
Subject: [PATCH v3 02/46] usb: gadget: add endpoint capabilities flags
Date: Wed, 15 Jul 2015 08:31:49 +0200	[thread overview]
Message-ID: <1436941953-1327-3-git-send-email-r.baldyga@samsung.com> (raw)
In-Reply-To: <1436941953-1327-1-git-send-email-r.baldyga@samsung.com>

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

WARNING: multiple messages have this Message-ID (diff)
From: r.baldyga@samsung.com (Robert Baldyga)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 02/46] usb: gadget: add endpoint capabilities flags
Date: Wed, 15 Jul 2015 08:31:49 +0200	[thread overview]
Message-ID: <1436941953-1327-3-git-send-email-r.baldyga@samsung.com> (raw)
In-Reply-To: <1436941953-1327-1-git-send-email-r.baldyga@samsung.com>

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

  parent reply	other threads:[~2015-07-15  6:33 UTC|newest]

Thread overview: 149+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-15  6:31 [PATCH v3 00/46] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
2015-07-15  6:31 ` Robert Baldyga
2015-07-15  6:31 ` Robert Baldyga
2015-07-15  6:31 ` [PATCH v3 01/46] usb: gadget: encapsulate endpoint " Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-20 14:43   ` Krzysztof Opasiak
2015-07-20 14:43     ` Krzysztof Opasiak
2015-07-20 14:43     ` Krzysztof Opasiak
2015-07-15  6:31 ` Robert Baldyga [this message]
2015-07-15  6:31   ` [PATCH v3 02/46] usb: gadget: add endpoint capabilities flags Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31 ` [PATCH v3 03/46] usb: gadget: add endpoint capabilities helper macros Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31 ` [PATCH v3 04/46] staging: emxx_udc: add ep capabilities support Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31 ` [PATCH v3 05/46] usb: chipidea: udc: " Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31 ` [PATCH v3 06/46] usb: dwc2: gadget: " Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31 ` [PATCH v3 07/46] usb: dwc3: " Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-21 16:43   ` Felipe Balbi
2015-07-21 16:43     ` Felipe Balbi
2015-07-21 16:43     ` Felipe Balbi
2015-07-15  6:31 ` [PATCH v3 08/46] usb: gadget: amd5536udc: " Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31 ` [PATCH v3 09/46] usb: gadget: at91_udc: " Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31 ` [PATCH v3 10/46] usb: gadget: bcm63xx_udc: " Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31 ` [PATCH v3 11/46] usb: gadget: bdc: " Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31 ` [PATCH v3 12/46] usb: gadget: dummy-hcd: " Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:31   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 13/46] usb: gadget: fotg210-udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 14/46] usb: gadget: fsl_qe_udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 15/46] usb: gadget: fsl_udc_core: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 16/46] usb: gadget: fusb300_udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 17/46] usb: gadget: goku_udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 18/46] usb: gadget: gr_udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 19/46] usb: gadget: lpc32xx_udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 20/46] usb: gadget: m66592-udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 21/46] usb: gadget: mv_u3d_core: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 22/46] usb: gadget: mv_udc_core: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 23/46] usb: gadget: net2272: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 24/46] usb: gadget: net2280: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 25/46] usb: gadget: omap_udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 26/46] usb: gadget: pch_ud: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-20 15:08   ` Krzysztof Opasiak
2015-07-20 15:08     ` Krzysztof Opasiak
2015-07-20 15:08     ` Krzysztof Opasiak
2015-07-25  9:34     ` Robert Baldyga
2015-07-25  9:34       ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 27/46] usb: gadget: pxa25x_udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 28/46] usb: gadget: pxa27x_udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 29/46] usb: gadget: r8a66597-udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 30/46] usb: gadget: s3c-hsudc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 31/46] usb: gadget: s3c2410_udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 32/46] usb: gadget: udc-xilinx: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 33/46] usb: isp1760: udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 34/46] usb: musb: gadget: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 35/46] usb: renesas: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 36/46] usb: gadget: atmel_usba_udc: " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 37/46] usb: gadget: epautoconf: add endpoint capabilities flags verification Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 38/46] usb: gadget: epautoconf: remove pxa quirk from ep_matches() Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 39/46] usb: gadget: epautoconf: remove ep and desc configuration " Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 40/46] usb: gadget: epautoconf: rework ep_matches() function Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 41/46] usb: gadget: add 'ep_match' callback to usb_gadget_ops Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 42/46] usb: gadget: move ep_matches() from epautoconf to udc-core Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 43/46] usb: gadget: move find_ep() from epautoconf to gadget.h Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 44/46] usb: gadget: net2280: add net2280_match_ep() function Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 45/46] usb: gadget: goku_udc: add goku_match_ep() function Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32 ` [PATCH v3 46/46] usb: musb: gadget: add musb_match_ep() function Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga
2015-07-15  6:32   ` Robert Baldyga

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1436941953-1327-3-git-send-email-r.baldyga@samsung.com \
    --to=r.baldyga@samsung.com \
    --cc=Peter.Chen@freescale.com \
    --cc=andrzej.p@samsung.com \
    --cc=balbi@ti.com \
    --cc=cernekee@gmail.com \
    --cc=dahlmann.thomas@arcor.de \
    --cc=daniel@zonque.org \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=haojian.zhuang@gmail.com \
    --cc=johnyoun@synopsys.com \
    --cc=leoli@freescale.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-geode@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=m.szyprowski@samsung.com \
    --cc=michal.simek@xilinx.com \
    --cc=nicolas.ferre@atmel.com \
    --cc=robert.jarzmik@free.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.