Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1184351

[PATCH v3 41/46] usb: gadget: add 'ep_match' callback to usb_gadget_ops

Path csiph.com!aioe.org!bofh.it!news.nic.it!robomod
From Robert Baldyga <r.baldyga@samsung.com>
Newsgroups linux.kernel
Subject [PATCH v3 41/46] usb: gadget: add 'ep_match' callback to usb_gadget_ops
Date Wed, 15 Jul 2015 08:50:01 +0200
Message-ID <pMoFX-83L-9@gated-at.bofh.it> (permalink)
References <pMowh-7Sm-3@gated-at.bofh.it>
X-Original-To gregkh@linuxfoundation.org, balbi@ti.com
X-Auditid cbfee61a-f79516d000006302-e9-55a5ffd13d6b
X-Mailer git-send-email 1.9.1
X-Brightmail-Tracker H4sIAAAAAAAAA+NgFupmkeLIzCtJLcpLzFFi42I5/e+xoO7F/0tDDTZOFLCY9bKdxeLg/XqL vQvuMlp03j/MbNH09xWLxZ4zv9gtmhevZ7O4sM7cYvfpS4wWvx4IWWx6fI3Vov/caRaLy7vm sFnMXtLPYrFoWSuzxe/v/1gt1h65y27x7mWExbfLzewWx2b/ZbJ4cHgnu8WsN8IOYh6Tn2xk 8ljwayuLx719h1k8+td9ZvX4d7ifyWPnrLvsHvvnrmH32Lyk3uP8jIWMHn1bVjF6bNn/mdHj +I3tTB6fN8l57P38m8Vj++7lLAH8UVw2Kak5mWWpRfp2CVwZ+x+tYyu4wVPR1/eNsYFxL1cX IyeHhICJxLovi9khbDGJC/fWs3UxcnEICUxnlLjY3cAIkhAS+Mko0fJaGsRmE9CR2PJ9Alhc BMhe93cHWAOzwFoWiVtvFrCAJIQFAiQmd05nA7FZBFQl+pY8A2vgFXCVWLpnCwvENjmJk8cm s4LYnEDx6T2/mCGWuUg83fWBaQIj7wJGhlWMoqkFyQXFSem5hnrFibnFpXnpesn5uZsYwVH0 TGoH48oGi0OMAhyMSjy8N5csDRViTSwrrsw9xCjBwawkwjv7I1CINyWxsiq1KD++qDQntfgQ ozQHi5I478l8n1AhgfTEktTs1NSC1CKYLBMHp1QDo/GbQOELCorlhypfu2dOXTjt0Jszj16c WOa2kZ213H+x1sqABeKlX+01/B+WN0y9UKeyM2tm1fyoIF7rIGM+heNF/xVe/+Q4N1nm4kfN LU6zzJaenfLuw+VZlpxyZyWteQv/LZunof9LMXNufNf0ZZc08hO+2XqcmZK6W7duc/Q1fibt wIf3lyuxFGckGmoxFxUnAgDVGcn0ngIAAA==
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 54
Organization linux.* mail to news gateway
X-Original-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>
X-Original-Date Wed, 15 Jul 2015 08:32:28 +0200
X-Original-Message-ID <1436941953-1327-42-git-send-email-r.baldyga@samsung.com>
X-Original-References <1436941953-1327-1-git-send-email-r.baldyga@samsung.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref aioe.org linux.kernel:1184351

Show key headers only | View raw


Add callback that is called by epautoconf to allow UDC driver match the
best endpoint for specific descriptor. It's intended to supply mechanism
which allows to get rid of chip-specific endpoint matching code from
epautoconf.

If gadget has set 'ep_match' callback we prefer to call it first, and
if it fails to find matching endpoint, then we try to use default matching
algorithm.

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

diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c
index 4fa6f5d..1b1fee0 100644
--- a/drivers/usb/gadget/epautoconf.c
+++ b/drivers/usb/gadget/epautoconf.c
@@ -165,6 +165,12 @@ struct usb_ep *usb_ep_autoconfig_ss(
 
 	type = desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
 
+	if (gadget->ops->match_ep) {
+		ep = gadget->ops->match_ep(gadget, desc, ep_comp);
+		if (ep)
+			goto found_ep;
+	}
+
 	/* First, apply chip-specific "best usage" knowledge.
 	 * This might make a good usb_gadget_ops hook ...
 	 */
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index e6cbc25..0041bb9 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -534,6 +534,9 @@ struct usb_gadget_ops {
 	int	(*udc_start)(struct usb_gadget *,
 			struct usb_gadget_driver *);
 	int	(*udc_stop)(struct usb_gadget *);
+	struct usb_ep *(*match_ep)(struct usb_gadget *,
+			struct usb_endpoint_descriptor *,
+			struct usb_ss_ep_comp_descriptor *);
 };
 
 /**
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v3 00/46] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:40 +0200
  [PATCH v3 21/46] usb: gadget: mv_u3d_core: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:40 +0200
  [PATCH v3 33/46] usb: isp1760: udc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:40 +0200
  [PATCH v3 01/46] usb: gadget: encapsulate endpoint claiming mechanism Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:40 +0200
  [PATCH v3 11/46] usb: gadget: bdc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:40 +0200
  [PATCH v3 19/46] usb: gadget: lpc32xx_udc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:40 +0200
  [PATCH v3 37/46] usb: gadget: epautoconf: add endpoint capabilities  flags verification Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:40 +0200
  [PATCH v3 25/46] usb: gadget: omap_udc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:40 +0200
  [PATCH v3 06/46] usb: dwc2: gadget: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:40 +0200
  [PATCH v3 46/46] usb: musb: gadget: add musb_match_ep() function Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:40 +0200
  [PATCH v3 24/46] usb: gadget: net2280: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:40 +0200
  [PATCH v3 10/46] usb: gadget: bcm63xx_udc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 29/46] usb: gadget: r8a66597-udc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 41/46] usb: gadget: add 'ep_match' callback to usb_gadget_ops Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 23/46] usb: gadget: net2272: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 17/46] usb: gadget: goku_udc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 08/46] usb: gadget: amd5536udc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 35/46] usb: renesas: gadget: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 40/46] usb: gadget: epautoconf: rework ep_matches() function Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 27/46] usb: gadget: pxa25x_udc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 18/46] usb: gadget: gr_udc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 43/46] usb: gadget: move find_ep() from epautoconf to  gadget.h Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 14/46] usb: gadget: fsl_qe_udc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200
  [PATCH v3 20/46] usb: gadget: m66592-udc: add ep capabilities support Robert Baldyga <r.baldyga@samsung.com> - 2015-07-15 08:50 +0200

csiph-web