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

From: Alan Stern
Date: Mon May 23 2011 - 12:30:45 EST


On Mon, 23 May 2011, Sarah Sharp wrote:

> > 2. whether the device HW supports SS protocol. In our scenario it can since
> > SS support is enabled in our udc. (We haven't released it yet.)
>
> What is a UDC?

USB Device Controller. It's the device-side analog of a host
controller.

> > Since in dummy_hcd all of this is much simpler I think that the device speed
> > should be determined by driver->speed and "which type of cable the
> > connection was made over - SS or HS". The "cable type" is exactly what the
> > module parameter is.
>
> I really don't understand this. You're going to have a module parameter
> for what type of cable is plugged in?

It would be more accurate to say the module parameter will be used to
force the connection to run at a lower speed than the maximum possible.
This is kind of like what happens when you plug in a SuperSpeed device
using a USB-2 cable -- the connection runs at a lower speed than it
could have.

> How can you tell which one the
> user is going to use?

This isn't about actual cables or devices. dummy-hcd is an emulator;
it presents as a host controller and a device controller both on the
same system. This allows people to test gadget drivers without having
any UDC hardware.

> What about the case where SuperSpeed enumeration
> fails and you have to fall back to high speed?

If SuperSpeed enumeration fails, say because the device doesn't have
any SuperSpeed descriptors, xhci-hcd doesn't fall back to high speed,
does it? dummy-hcd should behave the same way.

> It seems like you really
> need to handle both speeds and the speed fall back parameter in the same
> driver. Isn't there some other gadget driver that has a fall back to
> full or low speed when high speed enumeration fails?

That's a property of the gadget driver, not the UDC driver. dummy-hcd
is a UDC driver (and an HCD too).

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/