All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: Robert Baldyga <r.baldyga@samsung.com>, balbi@ti.com
Cc: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
	linux-usb@vger.kernel.org, stern@rowland.harvard.edu
Subject: Re: [PATCH v7 6/8] usb: gadget: goku_udc: add goku_match_ep() function
Date: Thu, 6 Aug 2015 14:17:10 +0300	[thread overview]
Message-ID: <55C34236.5080700@cogentembedded.com> (raw)
In-Reply-To: <1438847923-27595-7-git-send-email-r.baldyga@samsung.com>

Hello.

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 <r.baldyga@samsung.com>
> ---
>   drivers/usb/gadget/epautoconf.c   | 20 ++------------------
>   drivers/usb/gadget/udc/goku_udc.c | 25 +++++++++++++++++++++++++
>   2 files changed, 27 insertions(+), 18 deletions(-)

> diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c
> index 0ff5134..574b6a4 100644
> --- a/drivers/usb/gadget/epautoconf.c
> +++ b/drivers/usb/gadget/epautoconf.c
> @@ -86,24 +86,8 @@ struct usb_ep *usb_ep_autoconfig_ss(
>   	/* First, apply chip-specific "best usage" knowledge.
>   	 * This might make a good usb_gadget_ops hook ...
>   	 */
> -	if (gadget_is_goku(gadget)) {
> -		if (USB_ENDPOINT_XFER_INT == type) {
> -			/* single buffering is enough */
> -			ep = gadget_find_ep_by_name(gadget, "ep3-bulk");
> -			if (ep && usb_gadget_ep_match_desc(gadget,
> -					ep, desc, ep_comp))
> -				goto found_ep;
> -		} else if (USB_ENDPOINT_XFER_BULK == type
> -				&& (USB_DIR_IN & desc->bEndpointAddress)) {
> -			/* DMA may be available */
> -			ep = gadget_find_ep_by_name(gadget, "ep2-bulk");
> -			if (ep && usb_gadget_ep_match_desc(gadget,
> -					ep, desc, ep_comp))
> -				goto found_ep;
> -		}
> -
>   #ifdef CONFIG_BLACKFIN
> -	} else if (gadget_is_musbhdrc(gadget)) {
> +	if (gadget_is_musbhdrc(gadget)) {
>   		if ((USB_ENDPOINT_XFER_BULK == type) ||
>   		    (USB_ENDPOINT_XFER_ISOC == type)) {
>   			if (USB_DIR_IN & desc->bEndpointAddress)
> @@ -119,8 +103,8 @@ struct usb_ep *usb_ep_autoconfig_ss(
>   			ep = NULL;
>   		if (ep && usb_gadget_ep_match_desc(gadget, ep, desc, ep_comp))
>   			goto found_ep;
> -#endif
>   	}
> +#endif
>
>   	/* Second, look at endpoints until an unclaimed one looks usable */
>   	list_for_each_entry (ep, &gadget->ep_list, ep_list) {
> diff --git a/drivers/usb/gadget/udc/goku_udc.c b/drivers/usb/gadget/udc/goku_udc.c
> index 46b8d14..d5a93ea 100644
> --- a/drivers/usb/gadget/udc/goku_udc.c
> +++ b/drivers/usb/gadget/udc/goku_udc.c
> @@ -990,6 +990,30 @@ static int goku_get_frame(struct usb_gadget *_gadget)
>   	return -EOPNOTSUPP;
>   }
>
> +static struct usb_ep *goku_match_ep(struct usb_gadget *g,
> +		struct usb_endpoint_descriptor *desc,
> +		struct usb_ss_ep_comp_descriptor *ep_comp)
> +{
> +	struct goku_udc	*dev = to_goku_udc(g);
> +	struct usb_ep *ep;
> +	u8 type = usb_endpoint_type(desc);
> +
> +	if (type == USB_ENDPOINT_XFER_INT) {
> +		/* single buffering is enough */
> +		ep = &dev->ep[3].ep;
> +		if (ep && usb_gadget_ep_match_desc(g, ep, desc, ep_comp))
> +			return ep;
> +	} else if (type == USB_ENDPOINT_XFER_BULK
> +			&& usb_endpoint_dir_in(desc)) {
> +		/* DMA may be available */
> +		ep = &dev->ep[2].ep;
> +		if (ep && usb_gadget_ep_match_desc(g, ep, desc, ep_comp))
> +			return ep;

    You used *switch* in the MUSB driver but not here, despite the above is 
also asking for *switch*. Why? :-)

> +	}
> +
> +	return NULL;
> +}
> +

MBR, Sergei


  reply	other threads:[~2015-08-06 11:17 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-06  7:58 [PATCH v7 0/8] usb: gadget: rework ep matching and claiming mechanism Robert Baldyga
2015-08-06  7:58 ` [PATCH v7 1/8] usb: gadget: epautoconf: rework ep_matches() function Robert Baldyga
2015-08-06  7:58 ` [PATCH v7 2/8] usb: gadget: add 'ep_match' callback to usb_gadget_ops Robert Baldyga
2015-08-06  7:58 ` [PATCH v7 3/8] usb: gadget: move ep_matches() from epautoconf to udc-core Robert Baldyga
2015-08-06  7:58 ` [PATCH v7 4/8] usb: gadget: move find_ep() " Robert Baldyga
2015-08-06  7:58 ` [PATCH v7 5/8] usb: gadget: net2280: add net2280_match_ep() function Robert Baldyga
2015-08-06  7:58 ` [PATCH v7 6/8] usb: gadget: goku_udc: add goku_match_ep() function Robert Baldyga
2015-08-06 11:17   ` Sergei Shtylyov [this message]
2015-08-06  7:58 ` [PATCH v7 7/8] usb: musb: gadget: add musb_match_ep() function Robert Baldyga
2015-08-06 11:18   ` Sergei Shtylyov
2015-08-06  7:58 ` [PATCH v7 8/8] usb: gadget: remove gadget_chips.h Robert Baldyga

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55C34236.5080700@cogentembedded.com \
    --to=sergei.shtylyov@cogentembedded.com \
    --cc=balbi@ti.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=r.baldyga@samsung.com \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.