linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Felipe Balbi <balbi@ti.com>
To: Tatyana Brokhman <tlinder@codeaurora.org>
Cc: greg@kroah.com, linux-usb@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, balbi@ti.com,
	ablay@codeaurora.org, Maya Erez <merez@codeaurora.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v9 5/7] usb: Add streams support to the gadget framework
Date: Mon, 9 May 2011 12:25:58 +0300	[thread overview]
Message-ID: <20110509092555.GF1254@legolas.emea.dhcp.ti.com> (raw)
In-Reply-To: <1304853414-10234-6-git-send-email-tlinder@codeaurora.org>

Hi,

On Sun, May 08, 2011 at 02:16:46PM +0300, Tatyana Brokhman wrote:
> This patch defines necessary fields to support streaming for USB3.0.
> It implements a new function (usb_ep_autoconfig_ss) to be used instead of
> the existing usb_ep_autoconfig when working in SS mode and there is a
> need to search for an endpoint according to the number of required
> streams.
> 
> Signed-off-by: Maya Erez <merez@codeaurora.org>
> Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
> 
> ---
>  drivers/usb/gadget/epautoconf.c |  125 +++++++++++++++++++++++++++++++--------
>  include/linux/usb/gadget.h      |   10 +++
>  2 files changed, 110 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c
> index e7e373a..920d1fa 100644
> --- a/drivers/usb/gadget/epautoconf.c
> +++ b/drivers/usb/gadget/epautoconf.c
> @@ -63,13 +63,16 @@ static int
>  ep_matches (
>  	struct usb_gadget		*gadget,
>  	struct usb_ep			*ep,
> -	struct usb_endpoint_descriptor	*desc
> +	struct usb_endpoint_descriptor	*desc,
> +	struct usb_ss_ep_comp_descriptor *ep_comp
>  )
>  {
>  	u8		type;
>  	const char	*tmp;
>  	u16		max;
>  
> +	int		num_req_streams = 0;
> +
>  	/* endpoint already claimed? */
>  	if (NULL != ep->driver_data)
>  		return 0;
> @@ -129,6 +132,22 @@ ep_matches (
>  	}
>  
>  	/*
> +	 * Get the number of required streams from the EP companion
> +	 * descriptor and see if the EP matches it
> +	 */
> +	if (usb_endpoint_xfer_bulk(desc)) {
> +		if (ep_comp) {
> +			num_req_streams = ep_comp->bmAttributes & 0x1f;
> +			if (num_req_streams > ep->max_streams)
> +				return 0;

We would like the gadget drivers to all with all controllers, this would
likely be better to ask from controller driver for N streams but work if
we get less ? Something like:

struct usb_gadget_ops {
	...
	request_stream(struct usb_gadget *g, int max_streams);
};

if (usb_endpoint_xfer_bulk(desc)) {
	if (ep_comp) {
		num_req_streams = usb_gadget_request_streams(gadget,
			ep_comp->bmAttributes & 0x1f);

		/* now patch ep_comp descriptor */
		ep_comp->bmAttributes = num_req_streams;
	}
}

this way, different function drivers can request for a different number
of streams and controller driver is required to keep track of total
number of streams, and number of "busy" streams.

Another approach would be to require function drivers to request the
streams during bind by themselves and only give this layer correct
descriptors, which allow you to make those arguments const.

-- 
balbi

  reply	other threads:[~2011-05-09  9:26 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1304853414-10234-1-git-send-email-tlinder@codeaurora.org>
2011-05-08 11:16 ` [PATCH v9 1/7] usb: Add usb_endpoint_descriptor to be part of the struct usb_ep Tatyana Brokhman
2011-05-08 11:16 ` [PATCH v9 2/7] usb: Configure endpoint according to gadget speed Tatyana Brokhman
2011-05-08 11:16 ` [PATCH v9 3/7] usb: Modify existing gadget drivers to use config_ep_by_speed() instead of ep_choose Tatyana Brokhman
2011-05-08 11:16 ` [PATCH v9 4/7] usb:gadget: Add SuperSpeed support to the Gadget Framework Tatyana Brokhman
2011-05-09  9:19   ` Felipe Balbi
2011-05-11 13:00     ` Tanya Brokhman
2011-05-08 11:16 ` [PATCH v9 5/7] usb: Add streams support to the gadget framework Tatyana Brokhman
2011-05-09  9:25   ` Felipe Balbi [this message]
2011-05-11 13:29     ` Tanya Brokhman
2011-05-11 20:54       ` Felipe Balbi
2011-05-08 11:16 ` [PATCH v9 6/7] usb:gadget: Introduce usb_generate_ss_descriptors() Tatyana Brokhman
2011-05-08 11:16 ` [PATCH v9 7/7] usb: Adding SuperSpeed support to dummy_hcd Tatyana Brokhman
2011-05-09 17:49   ` Sebastian Andrzej Siewior
2011-05-10 11:24     ` Sergei Shtylyov
2011-05-12  5:19     ` Tanya Brokhman
2011-05-12 14:45       ` Alan Stern

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=20110509092555.GF1254@legolas.emea.dhcp.ti.com \
    --to=balbi@ti.com \
    --cc=ablay@codeaurora.org \
    --cc=greg@kroah.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=merez@codeaurora.org \
    --cc=tlinder@codeaurora.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).