[alsa-devel] A plea for help on mixer support for Fast Track Ultra (8R)

Grant Diffey gdiffey at gmail.com
Thu May 19 02:51:55 CEST 2011


Daniel,

> The main problem at the moment is that snd_usb_create_mixer() will not be
> > called on quirked devices! Take a look at card.c: snd_usb_create_mixer()
> > will only be called if snd_usb_create_quirk() returns > 0. But why should
> we
> > assume that quirked devices don't have any mixers?
>
> That is indeed strange, yes. I can't explain that. Not to break
> existing devices, I would suggest adding a bit-wise "flags" field to
> snd_usb_audio_quirk and still create the mixers if a certain flag
> (something like "QUIRK_FLAG_CREATE_STANDARD_MIXERS") is set. Clemens,
> Takashi, would that be ok?
>
> In general, note that as long as functions are static, the can and
> should have short names. But once they're not, you're in the global
> kernel namespace, and all symbols must be well prefixed (with
> "snd_usb_" in that case) in order to avoid name collisions.
>
>
So this is probably a terrible idea but what about creating a new quirk

QUIRK_MIXER_STANDARD_INTERFACE and just having that eventually call
snd_usb_create_mixer()

because conceptually I could see this as two problems with two solutions.
one is that the interface type/blah is the mixer is a lie (vendor_specific
instead of UAC2 MIXER . (should be solved via a "quirk" in quirk-table.h)
and

The other is that the endpoint descriptors within that are wrong (solved in
mixer_quirks)

or am I thinking about this wrong?

Grant.


More information about the Alsa-devel mailing list