Re: [PATCHv3 2/4] usb: gadget: replace "is_dualspeed" with "max_speed"

From: Alan Stern
Date: Wed Aug 24 2011 - 10:31:32 EST


On Wed, 24 Aug 2011, Michal Nazarewicz wrote:

> On Tue, 23 Aug 2011 22:49:37 +0200, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> wrote:
> > Still, maybe I was wrong. Maybe it would be better to use the fastest
> > speed supported by at least one of the function drivers. The user can
> > always force a SuperSpeed-capable device to run at high speed by using
> > a USB-2 cable to plug it in. I'm not sure whether the user could force
> > such a device to run at full speed, however.
>
> I'm actually wondering whether we really need to worry about it.
> composite_driver has the âmax_speedâ field and I would just leave it as
> composite driver's author responsibility to put correct value there.
>
> One thing that could be worth doing is iterate over all the configurations
> and figure out if at least one supports the speed declared by âmax_speedâ
> and if not, lower it.

That's the same as what I said: Use the highest speed supported by any
function driver. There really isn't any point in allowing connections
faster than that. And as Felipe pointed out, the user always has the
capability to force the connection to be slower, by using the right
sorts of cables and hubs.

> Like I've said before, as additional functionality, composite.c could
> check if it's USB_SPEED_UNKWONW in which case it would look for the lowest
> speed that all the functions support.
>
> Such configuration would allow composite driver authors set the speed to
> USB_SPEED_SUPER when they mean âchoose maximum speed at least one function
> supportsâ and to âUSB_SPEED_UNKWONWâ when they mean âchoose maximum speed
> all the functions supportâ.
>
> Does that make sense?

It's reasonable. Just be sure to document it properly; otherwise
nobody will understand or remember it!

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/