Hi,

Hope this is the right place to mention/post this; I'm new to this. As a
point of reference, I'm running uClinux on a bf609-ezkit that is based on
3.10, but from what I can tell this hasn't been changed/fixed since 3.10 yet
and applies in general.

As per section 4.3.2 of Universal Serial Bus Device Class Definition for
Audio Devices (audio10.pdf), and section B.3.3.2 by example, the
bInCollection field of the Class-Specific AudioControl (AC) Interface Header
Descriptor is the number of AudioStreaming (AS) and MIDIStreaming (MS)
interfaces for the given AC interface. Similarly, the baInterfaceNr
collection is only to list the AS and MS interfaces.

In f_uac1.c, the AC header descriptor states that it has 2 interfaces in its
collection, one of those being the AC interface itself. This, at least,
causes Windows 7 to not enumerate the device correctly. Changing the
relative lines to make is only have 1 interface listed fixes enumeration on
Windows 7. (I know I should provide a patch for this, but I'm still reading
up on the proper way to submit these).

Interface numbering should be dynamic. Currently, the value(s) in the
baInterfaceNr collection are not updated when retrieved in f_audio_bind(). I
have not tried this myself yet, but should be easy to implement/understand.

If this all makes sense, I'll post a patch here (anywhere else, too?).

Thanks,

Ken

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to