From patchwork Mon Jul 27 09:16:51 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Baldyga X-Patchwork-Id: 6870581 Return-Path: X-Original-To: patchwork-linux-omap@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 4F3F0C05AC for ; Mon, 27 Jul 2015 09:24:41 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 76B4C20650 for ; Mon, 27 Jul 2015 09:24:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 860DA20638 for ; Mon, 27 Jul 2015 09:24:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754400AbbG0JW3 (ORCPT ); Mon, 27 Jul 2015 05:22:29 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:53599 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754397AbbG0JWZ (ORCPT ); Mon, 27 Jul 2015 05:22:25 -0400 Received: from epcpsbgm1new.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout3.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NS500NYY3DBI040@mailout3.samsung.com>; Mon, 27 Jul 2015 18:22:23 +0900 (KST) X-AuditID: cbfee61a-f79a06d000005c6f-f7-55b5f84f3837 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1new.samsung.com (EPCPMTA) with SMTP id B6.79.23663.F48F5B55; Mon, 27 Jul 2015 18:22:23 +0900 (KST) Received: from AMDC2122.DIGITAL.local ([106.120.53.17]) by mmp1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0NS500L1Z34BGGA0@mmp1.samsung.com>; Mon, 27 Jul 2015 18:22:23 +0900 (KST) From: Robert Baldyga To: balbi@ti.com Cc: gregkh@linuxfoundation.org, 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, stern@rowland.harvard.edu, petr.cvek@tul.cz, Robert Baldyga Subject: [PATCH v4 41/46] usb: gadget: add 'ep_match' callback to usb_gadget_ops Date: Mon, 27 Jul 2015 11:16:51 +0200 Message-id: <1437988616-6962-42-git-send-email-r.baldyga@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1437988616-6962-1-git-send-email-r.baldyga@samsung.com> References: <1437988616-6962-1-git-send-email-r.baldyga@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprLIsWRmVeSWpSXmKPExsVy+t9jAV3/H1tDDZrna1rMetnOYnHwfr3F 3gV3GS067x9mtmj6+4rFYs+ZX+wWzYvXs1lcWGdusfv0JUaLXw+ELDY9vsZq0X/uNIvF5V1z 2CxmL+lnsVi0rJXZ4vf3f6wWa4/cZbd49zLC4tvlZnaLY7P/MlnM75jKavHg8E52i1lvhC0m /L7A5iDhMfnJRiaPBb+2snjc23eYxaN/3WdWj3+H+5k8ds66y+6xf+4ado/NS+o9zs9YyOgx ++4PRo++LasYPbbs/8zocfzGdiaPmSt72Tw+b5Lz2Pv5N0uAYBSXTUpqTmZZapG+XQJXxoeO NtaCGzwVd5pOMjYw7uXqYuTkkBAwkVix4wojhC0mceHeerYuRi4OIYGljBJbFx6Hcn4ySjzr uMsGUsUmoCOx5fsEsA4RAQGJ9S8usYMUMQv8YJE4O6+bHSQhLBAgcaRzLwuIzSKgKtHcuwqs mVfAVWLp8l1MEOvkJE4em8wKYnMCxZdM2woU5wDa5iJx5LrWBEbeBYwMqxglUguSC4qT0nMN 81LL9YoTc4tL89L1kvNzNzGCI+2Z1A7Gg7vcDzEKcDAq8fBeUNkaKsSaWFZcmXuIUYKDWUmE 93EUUIg3JbGyKrUoP76oNCe1+BCjNAeLkjiv7IbNoUIC6YklqdmpqQWpRTBZJg5OqQbGqcdd eKfsEflaenY1Z9b7q8kdQQ7qK7nC7NvC+O6F6Mw0CFQqUply39PatMw4ULzOZO/kwswlNmed rK4umc7w+MmDR+Jq7NJnQm6+jbVKivf22rm4Y67jjyy9ZK/uST8u6do9nm+4xTvoNoPHGYXA tzN3cyd8WPWL/fp01XSLb+zZJ27/rxFXYinOSDTUYi4qTgQAzQpt0LACAAA= Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Spam-Status: No, score=-8.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 --- 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 c71b1de..6de3688 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 *); }; /**