On Tue, 23 Aug 2011, Michal Nazarewicz wrote: > On Tue, 23 Aug 2011 20:00:25 +0200, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > wrote: > > For the time being, perhaps the best answer is to use the _lowest_ > > max_speed value among all the function drivers. It's the simplest > > answer and most likely to be correct most of the time. > > In theory, one could create a composite function with only SS/HS > descriptors. The only reason for doing that would be if the function was incapable of carrying out its duties when running at full speed (insufficient bandwidth, for example). Something like this is discussed briefly in section 9.2.6.6 of the USB-2 spec. > So it would work for SS/HS but not for FS. I'm not > saying that it would make sense (or that it's not a bug) but that > adds to the discussion. If somebody writes a composite gadget containing two functions, one of which supports only full speed and the other only high speed, they'll get what they deserve. :-) 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. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html