[alsa-devel] [PATCH V3 1/5] sound: asoc: Adding support for STA529 Audio Codec

Takashi Iwai tiwai at suse.de
Fri Apr 15 11:27:29 CEST 2011


At Thu, 14 Apr 2011 22:28:45 +0800,
Lu Guanqun wrote:
> 
> On Thu, Apr 14, 2011 at 10:19:36PM +0800, Lu Guanqun wrote:
> > On Thu, Apr 14, 2011 at 05:54:11PM +0800, Takashi Iwai wrote:
> > > At Mon, 11 Apr 2011 07:56:22 -0700,
> > > Mark Brown wrote:
> > > > 
> > > > > +static const struct snd_kcontrol_new sta529_new_snd_controls[] = {
> > > > > +	SOC_ENUM("pwm select", pwm_src_enum),
> > > > > +	SOC_ENUM("mode select", mode_src_enum),
> > > > > +};
> > > > 
> > > > ALSA control names are idiomatically things like "PWM Select" with
> > > > capitalisation.
> > > 
> > > Actually, the capital words are no mandatory requirement (although
> > > it's conventionally so).  It's just alsa-mixer grouping rule that
> > > requires the capital words "Play", "Capture", "Volume", "Switch",
> > > etc.
> > 
> > Hi Takashi,
> > 
> > Where can I find these alsa-mixer grouping rule?
> > So that I can obey these rules and make them appear in the right view in
> > alsamixer.
> 
> Hi Takashi,
> 
> I'm reading this comment from file `sound/aoa/codecs/tas.c`:
> 
>         /* If we name this 'Input Source', it properly shows up in
>          * alsamixer as a selection, * but it's shown under the
>          * 'Playback' category.
>          * If I name it 'Capture Source', it shows up in strange
>          * ways (two bools of which one can be selected at a
>          * time) but at least it's shown in the 'Capture'
>          * category.
>          * I was told that this was due to backward compatibility,
>          * but I don't understand then why the mangling is *not*
>          * done when I name it "Input Source".....
>          */
> 
> I'm wondering what's the story behind? Can you shed some lights?

In alsa-mixer abstraction, the "Capture Source" enum control is split
over multiple switches (a switch per enum item).  This was a historical
design at the time SoundBlaster is still standard.

One of the problems with this abstraction is that it can't handle
multiple capture-source controls.  So, many drivers use nowadays
"Input Source" control instead.  But, in the earlier alsa-lib, this
wasn't handled as the capture control, thus it appears as a global
(both directional) control in alsamixer.

Now, this control is handled as a capture control in alsa-lib, so the
appearance is corrected.


Takashi


More information about the Alsa-devel mailing list