Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753385AbbGOGgM (ORCPT ); Wed, 15 Jul 2015 02:36:12 -0400 Received: from mailout1.samsung.com ([203.254.224.24]:47671 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753307AbbGOGgK (ORCPT ); Wed, 15 Jul 2015 02:36:10 -0400 X-AuditID: cbfee61a-f79516d000006302-12-55a5ff58476c From: Robert Baldyga 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 Subject: [PATCH v3 24/46] usb: gadget: net2280: add ep capabilities support Date: Wed, 15 Jul 2015 08:32:11 +0200 Message-id: <1436941953-1327-25-git-send-email-r.baldyga@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1436941953-1327-1-git-send-email-r.baldyga@samsung.com> References: <1436941953-1327-1-git-send-email-r.baldyga@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupikeLIzCtJLcpLzFFi42I5/e+xoG7E/6WhBrtea1rMetnOYnHwfr3F 3gV3GS067x9mtmj6+4rFYs+ZX+wWzYvXs1lcWGdusfv0JUaLXw+ELDY9vsZq0X/uNIvF5V1z 2CxmL+lnsVi0rJXZ4vf3f6wWa4/cZbd49zLC4tvlZnaLY7P/Mlk8OLyT3WLWG2EHMY/JTzYy eSz4tZXF496+wywe/es+s3r8O9zP5LFz1l12j/1z17B7bF5S73F+xkJGj74tqxg9tuz/zOhx /MZ2Jo/Pm+Q89n7+zeKxffdylgD+KC6blNSczLLUIn27BK6MQ2c+MxZMFauY1ziDqYHxnWAX IyeHhICJxPtTx1kgbDGJC/fWs3UxcnEICUxnlDi1spcRJCEk8JNRYu92SxCbTUBHYsv3CWBx ESB73d8dYA3MAmtZJG69WQA0iYNDWMBbYtvsOJAaFgFViYtXO5lAbF4BV4lLD7dCLZOTOHls MiuIzQkUn97zixlil4vE010fmCYw8i5gZFjFKJpakFxQnJSea6hXnJhbXJqXrpecn7uJERxD z6R2MK5ssDjEKMDBqMTDe3PJ0lAh1sSy4srcQ4wSHMxKIryzPwKFeFMSK6tSi/Lji0pzUosP MUpzsCiJ857M9wkVEkhPLEnNTk0tSC2CyTJxcEo1MObdaKmd1fbM6az85qNHapMFmzVCst6v rr/RWxX4QNkjt1rSrUdnp8XPv4s9E0qzRXszcoImOD3yWBlTwygvdyu//nCpkcpx3RfLYhYl 7LvSqyynWJ561voHH4PgxQe/Xrz/fCHcJWNpYIl2zotc7a17VkRIHz8UcJZ5lafM3AfO+ovm rN6QpcRSnJFoqMVcVJwIAJeUE4WdAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2994 Lines: 93 Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga --- drivers/usb/gadget/udc/net2280.c | 50 ++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/drivers/usb/gadget/udc/net2280.c b/drivers/usb/gadget/udc/net2280.c index 2bee912..0295cf7 100644 --- a/drivers/usb/gadget/udc/net2280.c +++ b/drivers/usb/gadget/udc/net2280.c @@ -74,19 +74,41 @@ static const char driver_desc[] = DRIVER_DESC; static const u32 ep_bit[9] = { 0, 17, 2, 19, 4, 1, 18, 3, 20 }; static const char ep0name[] = "ep0"; -static const char *const ep_name[] = { - ep0name, - "ep-a", "ep-b", "ep-c", "ep-d", - "ep-e", "ep-f", "ep-g", "ep-h", -}; -/* Endpoint names for usb3380 advance mode */ -static const char *const ep_name_adv[] = { - ep0name, - "ep1in", "ep2out", "ep3in", "ep4out", - "ep1out", "ep2in", "ep3out", "ep4in", +#define EP_INFO(_name, _type, _dir) \ + { \ + .name = _name, \ + .caps = USB_EP_CAPS(USB_EP_CAPS_TYPE_ ## _type, \ + USB_EP_CAPS_DIR_ ## _dir), \ + } + +static const struct { + const char *name; + const struct usb_ep_caps caps; +} ep_info_dft[] = { /* Default endpoint configuration */ + EP_INFO(ep0name, CONTROL, ALL), + EP_INFO("ep-a", ALL, ALL), + EP_INFO("ep-b", ALL, ALL), + EP_INFO("ep-c", ALL, ALL), + EP_INFO("ep-d", ALL, ALL), + EP_INFO("ep-e", ALL, ALL), + EP_INFO("ep-f", ALL, ALL), + EP_INFO("ep-g", ALL, ALL), + EP_INFO("ep-h", ALL, ALL), +}, ep_info_adv[] = { /* Endpoints for usb3380 advance mode */ + EP_INFO(ep0name, CONTROL, ALL), + EP_INFO("ep1in", ALL, IN), + EP_INFO("ep2out", ALL, OUT), + EP_INFO("ep3in", ALL, IN), + EP_INFO("ep4out", ALL, OUT), + EP_INFO("ep1out", ALL, OUT), + EP_INFO("ep2in", ALL, IN), + EP_INFO("ep3out", ALL, OUT), + EP_INFO("ep4in", ALL, IN), }; +#undef EP_INFO + /* mode 0 == ep-{a,b,c,d} 1K fifo each * mode 1 == ep-{a,b} 2K fifo each, ep-{c,d} unavailable * mode 2 == ep-a 2K fifo, ep-{b,c} 1K each, ep-d unavailable @@ -2055,7 +2077,8 @@ static void usb_reinit_228x(struct net2280 *dev) for (tmp = 0; tmp < 7; tmp++) { struct net2280_ep *ep = &dev->ep[tmp]; - ep->ep.name = ep_name[tmp]; + ep->ep.name = ep_info_dft[tmp].name; + ep->ep.caps = ep_info_dft[tmp].caps; ep->dev = dev; ep->num = tmp; @@ -2095,7 +2118,10 @@ static void usb_reinit_338x(struct net2280 *dev) for (i = 0; i < dev->n_ep; i++) { struct net2280_ep *ep = &dev->ep[i]; - ep->ep.name = dev->enhanced_mode ? ep_name_adv[i] : ep_name[i]; + ep->ep.name = dev->enhanced_mode ? ep_info_adv[i].name : + ep_info_dft[i].name; + ep->ep.caps = dev->enhanced_mode ? ep_info_adv[i].caps : + ep_info_dft[i].caps; ep->dev = dev; ep->num = i; -- 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/