linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Tanya Brokhman" <tlinder@codeaurora.org>
To: 'Alan Stern' <stern@rowland.harvard.edu>, balbi@ti.com
Cc: 'Sarah Sharp' <sarah.a.sharp@linux.intel.com>,
	greg@kroah.com, linux-usb@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, ablay@codeaurora.org,
	'open list' <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH v12 7/8] usb: Adding SuperSpeed support to dummy_hcd
Date: Thu, 26 May 2011 09:51:17 +0300	[thread overview]
Message-ID: <01fc01cc1b71$53e2d210$fba87630$@org> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1105251443040.1987-100000@iolanthe.rowland.org>

Hi Alan, Felipe,

> >  composite_driver.speed to USB_SPEED_SUPER.
> > >>
> > >> Not sure how to verify this. I need to know whether the driver
> that is
> > >> registered with the UDC is SS or not. This is before the function
> > >> drivers
> > >> are binded to it. So how can I verify at that point that the
> function
> > >> drivers that will bind to this driver will provide SS descriptors?
> > >> (I'm sorry, I don't have the ability to view the code at the
> moment and
> > >> due to the time differences between us I don't want to leave this
> > >> question
> > >> for tomorrow and loose another day...)
> > >
> > > I'm not sure about this either.  I have never used the composite
> > > framework so I'm not familiar with its details.  This has to be
> decided
> > > before the composite gadget driver registers with the UDC driver
> ...
> > Right, but at this point there is no way of knowing what function
> drivers
> > will bind to it and what descriptors they will provide. Most of the
> > function drivers allocate their descriptors at bind() that occurs
> after
> > the UDC already registers.
> 
> Well, there must be an appropriate spot to do this.

Unfortunately in the current implementation there isn't. We must set the
driver speed at usb_composite_probe(). 
The (not full) call stack for composite driver registration is:
1. usb_composite_probe()
2. usb_gadget_probe_driver()
3. composite_bind() - here the device descriptor is updated (fields such as
bMaxPacketSize0, idVendor, etc)
4. the gadgets "bind" function is called. For example for g_zero it's
zero_bind(). Only at this point will the function driver register it's
configurations and for each registered config - add the appropriate
functions. 
So as you can see, whether the gadget driver supports/or not SS can be
determined only at the end of the registration sequence, whether as far as
UDC is concerned, we need to set the correct driver speed at the very
beginning - at usb_composite_probe().

Felipe - please correct me if I'm mistaken. Is there a way to find out at
usb_composite_probe() if the registered function driver will support SS?

> It looks like you need to add a "max_speed" field to struct
> usb_composite_driver.  Each driver will initialize this to the highest
> speed it supports, and it must guarantee that the necessary descriptors
> are available.

I also thought of that. This can be done...
Just to make sure we're on the same page:
We can add a "max_sup_speed" field to struct usb_composite_driver. Each of
the Gadget drivers will set this field prior to calling
usb_composite_probe(). Then, in usb_composite_probe(), we'll update the
composite_driver.speed as follows:

	composite_driver.speed = min(composite_driver.speed,
driver->max_sup_speed);

Of course for SS we'll update the composite_driver.speed @ static struct
usb_gadget_driver composite_driver, as we agreed with Felipe.

How does that sound? Felipe - it seems to me that these should cover your
hesitations about updating the driver speed :)

Now that I think about it, the above will be true for HS as well. I mean the
current speed of composite_driver is set always to HS but if there is a
function driver that supports only FS then the above will update
composite_driver.speed to FS.


Best regards,
Tanya Brokhman
Consultant for Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum

  reply	other threads:[~2011-05-26  6:49 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-23  6:41 [PATCH v12 0/8] usb gadget: Add SuperSpeed support to the Gadget Framework Tatyana Brokhman
2011-05-23  6:41 ` [PATCH v12 2/8] usb: Configure endpoint according to gadget speed Tatyana Brokhman
2011-05-23  6:41 ` [PATCH/RESEND v12 3/8] usb: Modify existing gadget drivers to use config_ep_by_speed() instead of ep_choose Tatyana Brokhman
     [not found] ` <1306132882-9668-1-git-send-email-tlinder-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-05-23  6:41   ` [PATCH/RESEND v12 1/8] usb: Add usb_endpoint_descriptor to be part of the struct usb_ep Tatyana Brokhman
2011-05-23  6:41   ` [PATCH v12 4/8] usb:gadget: Add SuperSpeed support to the Gadget Framework Tatyana Brokhman
2011-05-23 12:31     ` Sebastian Andrzej Siewior
2011-05-23 22:18       ` Mike Frysinger
2011-05-24  5:10       ` Tanya Brokhman
2011-05-24  5:14         ` Mike Frysinger
2011-05-24  5:37           ` Tanya Brokhman
2011-05-24 17:12             ` Mike Frysinger
2011-05-23  6:41 ` [PATCH/RESEND v12 5/8] usb: Add streams support to the gadget framework Tatyana Brokhman
2011-05-23  6:41 ` [PATCH v12 6/8] usb:dummy_hcd: use the shared_hcd infrastructure Tatyana Brokhman
2011-05-23  6:41 ` [PATCH v12 7/8] usb: Adding SuperSpeed support to dummy_hcd Tatyana Brokhman
     [not found]   ` <1306132882-9668-8-git-send-email-tlinder-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-05-23  7:05     ` Felipe Balbi
2011-05-23  7:20       ` Tanya Brokhman
2011-05-23  7:21         ` Felipe Balbi
2011-05-23  8:18           ` Tanya Brokhman
2011-05-23  8:32             ` Felipe Balbi
2011-05-23  9:16               ` Tanya Brokhman
2011-05-23 14:22                 ` Alan Stern
2011-05-23 16:08                 ` Sarah Sharp
2011-05-23 16:28                   ` Alan Stern
2011-05-23 21:06                     ` Felipe Balbi
     [not found]                       ` <BD27AEAC-1E6D-480C-9E18-A970B992AD75-l0cyMroinI0@public.gmane.org>
2011-05-23 21:21                         ` Alan Stern
2011-05-24  5:53                           ` Tanya Brokhman
2011-05-24 10:18                             ` Felipe Balbi
2011-05-24 10:31                               ` Tanya Brokhman
2011-05-24 10:33                                 ` Felipe Balbi
2011-05-24 10:43                                   ` Tanya Brokhman
2011-05-24 14:20                                     ` Alan Stern
2011-05-25  4:46                                       ` Tanya Brokhman
2011-05-25  9:21                                         ` Felipe Balbi
     [not found]                                           ` <20110525092124.GI14556-UiBtZHVXSwEVvW8u9ZQWYwjfymiNCTlR@public.gmane.org>
2011-05-25  9:26                                             ` Tanya Brokhman
2011-05-25  9:27                                               ` Felipe Balbi
2011-05-25  9:43                                                 ` Tanya Brokhman
2011-05-25  9:49                                                   ` Felipe Balbi
2011-05-25 10:03                                                     ` Tanya Brokhman
2011-05-25 10:29                                                       ` Felipe Balbi
2011-05-25 10:52                                                         ` Tanya Brokhman
2011-05-25 11:23                                                           ` Felipe Balbi
2011-05-25 11:33                                                             ` Tanya Brokhman
2011-05-25 12:42                                                               ` Felipe Balbi
2011-05-25 14:23                                                               ` Alan Stern
2011-05-25 14:39                                                                 ` Alan Stern
2011-05-28 11:05                                                                   ` Tanya Brokhman
2011-05-28 14:15                                                                     ` Alan Stern
2011-06-07 10:33                                                                   ` Felipe Balbi
2011-05-25 17:07                                                                 ` Brokhman Tatyana
2011-05-25 17:29                                                                   ` Alan Stern
     [not found]                                                                     ` <Pine.LNX.4.44L0.1105251316170.1987-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2011-05-25 18:13                                                                       ` Brokhman Tatyana
2011-05-25 18:59                                                                         ` Alan Stern
2011-05-26  6:51                                                                           ` Tanya Brokhman [this message]
2011-05-26 14:31                                                                             ` Alan Stern
2011-05-26 16:15                                                                               ` Brokhman Tatyana
2011-05-25  9:20                                       ` Felipe Balbi
2011-05-23 15:55               ` Sarah Sharp
     [not found]           ` <20110523072142.GK3095-UiBtZHVXSwEVvW8u9ZQWYwjfymiNCTlR@public.gmane.org>
2011-05-23 14:20             ` Alan Stern
     [not found]       ` <20110523070556.GJ3095-UiBtZHVXSwEVvW8u9ZQWYwjfymiNCTlR@public.gmane.org>
2011-05-23 14:18         ` Alan Stern
2011-05-23  6:41 ` [PATCH v12 8/8] usb:gadget: coding style fixes Tatyana Brokhman

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='01fc01cc1b71$53e2d210$fba87630$@org' \
    --to=tlinder@codeaurora.org \
    --cc=ablay@codeaurora.org \
    --cc=balbi@ti.com \
    --cc=greg@kroah.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=sarah.a.sharp@linux.intel.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 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).