Re: [PATCH v12 7/8] usb: Adding SuperSpeed support to dummy_hcd

From: Felipe Balbi
Date: Mon May 23 2011 - 03:21:58 EST


Hi,

On Mon, May 23, 2011 at 10:20:45AM +0300, Tanya Brokhman wrote:
> > > diff --git a/drivers/usb/gadget/dummy_hcd.c
> > > b/drivers/usb/gadget/dummy_hcd.c index bf7981d..c2731d3 100644
> > > --- a/drivers/usb/gadget/dummy_hcd.c
> > > +++ b/drivers/usb/gadget/dummy_hcd.c
> > > @@ -70,6 +70,15 @@ MODULE_DESCRIPTION (DRIVER_DESC); MODULE_AUTHOR
> > > ("David Brownell"); MODULE_LICENSE ("GPL");
> > >
> > > +struct dummy_hcd_module_parameters {
> > > + bool is_super_speed;
> > > +};
> > > +
> > > +static struct dummy_hcd_module_parameters mod_data = {
> > > + .is_super_speed = false
> > > +};
> > > +module_param_named(is_super_speed, mod_data.is_super_speed, bool,
> > > +S_IRUGO); MODULE_PARM_DESC(is_super_speed, "true to simulate
> > > +SuperSpeed connection");
> >
> > you shouldn't need this. You should always enable SuperSpeed for this
> > driver.
>
> You mean I don't need the module parameter? IMO it's the best way to enable
> HS connection. If driver->speed=USB_SPEED_SUPER than dummy_hcd will try to
> enumerate the device on the SS root hub and if the gadget didn't provide SS
> descriptors - it will fail. Just as it happened before. Finding out from

then it should hand the device over to the hs_hcd ;-) Meaning it would
disconnect the device, switch to hs_hcd and reconnect :-)

> dummy_hcd that the enumeration failed is very complicated (if even possible)
> and I'm not sure that is the right thing to do... If you connect a real
> device over SS port to xHCI and the device doesn't provide SS descriptors -
> the enumeration fails and it's ok. But if you connect the same device to a
> HS port - it should work properly. This is what I tried to simulate with
> this parameter.

it doesn't just fails, it gives the device over to the shared_hcd :-)

--
balbi

Attachment: signature.asc
Description: Digital signature