From patchwork Mon Jul 27 09:16:22 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Baldyga X-Patchwork-Id: 6870141 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 253E5C05AC for ; Mon, 27 Jul 2015 09:18:57 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C6DD920570 for ; Mon, 27 Jul 2015 09:18:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B87FD205F2 for ; Mon, 27 Jul 2015 09:18:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753487AbbG0JSv (ORCPT ); Mon, 27 Jul 2015 05:18:51 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:36416 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753481AbbG0JSr (ORCPT ); Mon, 27 Jul 2015 05:18:47 -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 <0NS5010HE3771610@mailout3.samsung.com>; Mon, 27 Jul 2015 18:18:45 +0900 (KST) X-AuditID: cbfee61a-f79a06d000005c6f-9f-55b5f775d6c7 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1new.samsung.com (EPCPMTA) with SMTP id 63.D8.23663.577F5B55; Mon, 27 Jul 2015 18:18:45 +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:18:45 +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 12/46] usb: gadget: dummy-hcd: add ep capabilities support Date: Mon, 27 Jul 2015 11:16:22 +0200 Message-id: <1437988616-6962-13-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+NgFprDIsWRmVeSWpSXmKPExsVy+t9jAd3S71tDDW581rGY9bKdxeLg/XqL vQvuMlp03j/MbNH09xWLxZ4zv9gtmhevZ7O4sM7cYvfpS4wWvx4IWWx6fI3Vov/caRaLy7vm sFnMXtLPYrFoWSuzxe/v/1gt1h65y27x7mWExbfLzewWx2b/ZbKY3zGV1eLB4Z3sFrPeCFtM +H2BzUHCY/KTjUweC35tZfG4t+8wi0f/us+sHv8O9zN57Jx1l91j/9w17B6bl9R7nJ+xkNFj 9t0fjB59W1YxemzZ/5nR4/iN7UweM1f2snl83iTnsffzb5YAwSgum5TUnMyy1CJ9uwSujJMv vrIULJeuuN+8jrGB8bZYFyMnh4SAicTNKU/ZIGwxiQv31gPZXBxCAksZJZa+/M0I4fxklGhv 3sMMUsUmoCOx5fsERhBbREBAYv2LS+wgRcwCP1gkzs7rBnI4OIQFfCUOHHMEqWERUJX4sGAd O4jNK+Aqsf3jakaIbXISJ49NZgWxOYHiS6ZtZQJpFRJwkThyXWsCI+8CRoZVjBKpBckFxUnp uYZ5qeV6xYm5xaV56XrJ+bmbGMFx9kxqB+PBXe6HGAU4GJV4eC+obA0VYk0sK67MPcQowcGs JML7OAooxJuSWFmVWpQfX1Sak1p8iFGag0VJnFd2w+ZQIYH0xJLU7NTUgtQimCwTB6dUA6PN YflH/buOZAQl3Zc6oxxz7JT9xImTFjR87znEVxwQo9lxpvzhgsgi78rN5k/u6L4wb2BtUluW knKBze7ke5frEyMPmr90faN7efP0KpmkW1eKVJ+LrZ9x/1KZ/NFmD+bd7gU7ns3a1Pvk1PTf cxvkbEy3WLHOMGkWe7ZcRU8waW+OQNLFMyJKLMUZiYZazEXFiQByPud8rwIAAA== 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 Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga --- 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; }