From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755571AbbHFLS5 (ORCPT ); Thu, 6 Aug 2015 07:18:57 -0400 Received: from mail-la0-f52.google.com ([209.85.215.52]:35582 "EHLO mail-la0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755543AbbHFLSz (ORCPT ); Thu, 6 Aug 2015 07:18:55 -0400 Subject: Re: [PATCH v7 7/8] usb: musb: gadget: add musb_match_ep() function To: Robert Baldyga , balbi@ti.com References: <1438847923-27595-1-git-send-email-r.baldyga@samsung.com> <1438847923-27595-8-git-send-email-r.baldyga@samsung.com> Cc: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, stern@rowland.harvard.edu From: Sergei Shtylyov Message-ID: <55C3429C.2030200@cogentembedded.com> Date: Thu, 6 Aug 2015 14:18:52 +0300 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <1438847923-27595-8-git-send-email-r.baldyga@samsung.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/6/2015 10:58 AM, Robert Baldyga wrote: > Add 'match_ep' callback to utilize chip-specific knowledge in endpoint matching > process. Function does the same that was done by chip-specific code inside > of epautoconf. Now this code can be removed from there to separate generic code > from platform specific logic. > Signed-off-by: Robert Baldyga > --- > drivers/usb/gadget/epautoconf.c | 23 ----------------------- > drivers/usb/musb/musb_gadget.c | 34 ++++++++++++++++++++++++++++++++++ > 2 files changed, 34 insertions(+), 23 deletions(-) [...] > diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c > index 4150baf..ac2f188 100644 > --- a/drivers/usb/musb/musb_gadget.c > +++ b/drivers/usb/musb/musb_gadget.c > @@ -1684,6 +1684,39 @@ static int musb_gadget_pullup(struct usb_gadget *gadget, int is_on) > return 0; > } > > +#ifdef CONFIG_BLACKFIN > +static struct usb_ep *musb_match_ep(struct usb_gadget *g, > + struct usb_endpoint_descriptor *desc, > + struct usb_ss_ep_comp_descriptor *ep_comp) > +{ > + struct usb_ep *ep = NULL; > + u8 type = usb_endpoint_type(desc); You hardly need this variable. > + > + switch (type) { > + case USB_ENDPOINT_XFER_ISOC: > + case USB_ENDPOINT_XFER_BULK: > + if (usb_endpoint_dir_in(desc)) > + ep = gadget_find_ep_by_name(g, "ep5in"); > + else > + ep = gadget_find_ep_by_name(g, "ep6out"); > + break; > + case USB_ENDPOINT_XFER_INT: > + if (usb_endpoint_dir_in(desc)) > + ep = gadget_find_ep_by_name(g, "ep1in"); > + else > + ep = gadget_find_ep_by_name(g, "ep2out"); > + default: > + } > + > + if (ep && usb_gadget_ep_match_desc(g, ep, desc, ep_comp)) > + return ep; > + > + return NULL; > +} > +#else > +#define musb_match_ep NULL > +#endif > + > static int musb_gadget_start(struct usb_gadget *g, > struct usb_gadget_driver *driver); > static int musb_gadget_stop(struct usb_gadget *g); [...] MBR, Sergei