[alsa-devel] Support for USB-Audio devices with Multiple configurations?

Clemens Ladisch clemens at ladisch.de
Fri May 15 09:07:41 CEST 2009

Cameron Stone wrote:
> I'm writing some firmware for a USB microphone array with multiple
> configurations, and I'm wondering if it's possible to tell ALSA which
> configuration to use in a module option or something (device_setup,
> perhaps).
> I've been looking through usbaudio.c in the kernel source
> (2.6.28-11-generic from the ubuntu Jaunty package), and I can't find any
> generic device configuration like that.
> If this is not possible, does anyone have any recommendations on how to
> implement this? I can imagine doing it using quirks for this particular
> USB_ID, but this seems like a fairly generic type of capability, so I'd
> like to make it general if possible.

While the USB specifications define configurations, there is no generic
way how a driver could automatically determine which configuration to

> If anyone is wondering *why* I want multiple configurations: it's for
> bandwidth management. I have 8 channels, but I want to be able to sample
> 1 channel as fast as possible without wasting bandwidth on the other 7.
> I couldn't figure out a way to do that with a single configurations.

Bandwidth management is implemented by having multiple alternate
settings for the audio streaming interface.  (This is why alternate
setting zero must have no endpoint or a zero-sized endpoint, so that
in the default case, the interface does not use any bandwidth.)

Best regards,

More information about the Alsa-devel mailing list