Hi, On Tue, Aug 23, 2011 at 05:26:24PM +0200, Michal Nazarewicz wrote: > >On Tue, Aug 23, 2011 at 05:07:11PM +0200, Michal Nazarewicz wrote: > >>If you look at config_buf() in composite.c, you'll notice that composite > >>just skips functions that do not support current speed. This > >>means, that if a connection uses high speed but given function > >>can handle only > >>full speed, it won't be included in the descriptors. > >> > >>config_buf() is called from config_desc() which similarly, iterates over > >>configurations skipping the ones that do not support given speed. > >> > >>Configuration is defined to support given speed if at least one function > >>that is added to that configuration supports that speed (see > >>usb_add_function()). > > On Tue, 23 Aug 2011 17:11:06 +0200, Felipe Balbi <balbi@xxxxxx> wrote: > >I'm trying to think if this is really what we want. This might mean > >$current_config will be different depending if we connect it to SS, HS > >or FS hubs. > > What do you mean by $current_config? The bConfigurationValue will be the currently chosen configuration. > the same for "the same" configuration regardless of speed but different > configurations may be available for different speeds and "the same" > configuration in various speeds might have different functions. > > So just for the sake of having something concrete, let's say we have: > > Configuration #1 with > function A supporting FS and HS and my question is what happens with the HS support on function A (descriptors, endpoints, etc) when you connect it to a HS hub or to a FS hub. > function B supporting FS only. > Configuration #2 with > function B supporting FS only. > Configuration #3 with > function A supporting FS and HS and > function C supporting HS only (dunno if that makes sense). > > When connected to FS hub, we will return the following: > > Configuration #1: A, B > Configuration #2: B > Configuration #3: A > > When connect to HS hub, we will return the following: > > Configuration #1: A See, I'm not sure this is allowed by USB spec. But I could be wrong. (I mean having a function disappear) -- balbi
Attachment:
signature.asc
Description: Digital signature