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 v2 02/48] usb: gadget: add endpoint capabilities flags
Date: Tue, 14 Jul 2015 11:38:50 +0200	[thread overview]
Message-ID: <1436866776-5004-3-git-send-email-r.baldyga@samsung.com> (raw)
In-Reply-To: <1436866776-5004-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 v2 02/48] usb: gadget: add endpoint capabilities flags
Date: Tue, 14 Jul 2015 11:38:50 +0200	[thread overview]
Message-ID: <1436866776-5004-3-git-send-email-r.baldyga@samsung.com> (raw)
In-Reply-To: <1436866776-5004-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 v2 02/48] usb: gadget: add endpoint capabilities flags
Date: Tue, 14 Jul 2015 11:38:50 +0200	[thread overview]
Message-ID: <1436866776-5004-3-git-send-email-r.baldyga@samsung.com> (raw)
In-Reply-To: <1436866776-5004-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-14  9:58 UTC|newest]

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

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=1436866776-5004-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.