From patchwork Wed Jul 8 11:08:56 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Baldyga X-Patchwork-Id: 6745141 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 407E1C05AC for ; Wed, 8 Jul 2015 11:11:49 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4FC5C2060F for ; Wed, 8 Jul 2015 11:11:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5036B2060C for ; Wed, 8 Jul 2015 11:11:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758438AbbGHLLb (ORCPT ); Wed, 8 Jul 2015 07:11:31 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:48230 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758426AbbGHLL1 (ORCPT ); Wed, 8 Jul 2015 07:11:27 -0400 Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NR601FKF1QSNUB0@mailout2.samsung.com>; Wed, 08 Jul 2015 20:11:16 +0900 (KST) X-AuditID: cbfee61a-f79516d000006302-5d-559d0554434c Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id EB.7D.25346.4550D955; Wed, 8 Jul 2015 20:11:16 +0900 (KST) Received: from AMDC2122.DIGITAL.local ([106.120.53.17]) by mmp2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0NR6001FW1NOWRB0@mmp2.samsung.com>; Wed, 08 Jul 2015 20:11:16 +0900 (KST) From: Robert Baldyga To: gregkh@linuxfoundation.org Cc: Peter.Chen@freescale.com, johnyoun@synopsys.com, balbi@ti.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 Subject: [PATCH 12/37] usb: gadget: dummy-hcd: add ep capabilities support Date: Wed, 08 Jul 2015 13:08:56 +0200 Message-id: <1436353761-7107-13-git-send-email-r.baldyga@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1436353761-7107-1-git-send-email-r.baldyga@samsung.com> References: <1436353761-7107-1-git-send-email-r.baldyga@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeLIzCtJLcpLzFFi42I5/e+xoG4I69xQg+m9ihazXrazWBy8X2+x d8FdRovO+4eZLZr+vmKx2HPmF7tF8+L1bBYX1plb7D59idHi1wMhi02Pr7Fa9J87zWJxedcc NovZS/pZLBYta2W2+P39H6vF2iN32S3evYyw+Ha5md3i2Oy/TBYPDu9kt5j1RthBzGPyk41M Hgt+bWXxuLfvMItH/7rPrB7/DvczeeycdZfdY//cNewem5fUe5yfsZDRo2/LKkaPLfs/M3oc v7GdyePzJjmPvZ9/s3hs372cJYA/issmJTUnsyy1SN8ugSvj5IuvLAXLpSvuN69jbGC8LdbF yMkhIWAiser0Q1YIW0ziwr31bF2MXBxCAtMZJW527INyfjJK9Dzczw5SxSagI7Hl+wRGEFtE QE7iye0/zCBFzAK7WSROdZ0EKxIW8JKY9XwLmM0ioCqxcv87JhCbV8BV4uK0JkaIdXISJ49N BlvNCRS/fuwxM4gtJOAi8eH6BuYJjLwLGBlWMYqmFiQXFCel5xrqFSfmFpfmpesl5+duYgTH 0TOpHYwrGywOMQpwMCrx8H6MnBMqxJpYVlyZe4hRgoNZSYR3HsvcUCHelMTKqtSi/Pii0pzU 4kOM0hwsSuK8J/N9QoUE0hNLUrNTUwtSi2CyTBycUg2MR5tYDrocW3X+1v1Ozak17VNjLmzS 2+LkX9a5Q9rgasZB05ZJV78+ELu3QXRPy/wV1usWHdM58edgfvDXJysvrpywoMyp8XaUTM2U jYt3XC/jefqq8XW389YZH0OTgrNCrt6dNX9TcFHGzVcF7tPiHEOn+HqdXLJ8kpxB8Be+SzFH uGas//z5qrQSS3FGoqEWc1FxIgAbL1tCnwIAAA== Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Spam-Status: No, score=-7.6 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; }