Subject: [linux-sunxi] Re: [PATCH v8 2/2] ASoc: sun4i-codec: Add FM, Line and Mic inputs

From: [email-masked] (Danny Milosavljevic)
Date: Sat, 19 Mar 2016 17:51:24 +0100

Hi Maxime,

> IIRC, in order to have shared controls, you just needed to share the
> controls structure.

Yeah. I did this and it actually works in a way, but in doesn't do all that I want.

There are two different kinds of sharing I mean:

The one kind with the controls structure causes the control to rename itself
to not state its mixer but there's still just one slider in the end. 
So instead of "Left Mixer Left XXX" it will just say "Left XXX" if you put it 
inside Left Mixer and Right Mixer and share the entry - for this hardware, 
that's of doubtful use.

But what I would like to have is that the same Mic Playback Volume (the very 
same bits) be used for different sliders
(1) Mic1 Left Channel Playback Volume
(2) Mic1 Right Channel Playback Volume
(3) Mic2 Left Channel Playback Volume (!!)
(4) Mic2 Right Channel Playback Volume

Additionally, Mic1 Playback and Mic2 Playback have two mutes each in the 
hardware (all separately switchable).

Now if we could make the alsamixer selems look like the following, 
that would be nice:

Mic1_Playback     Mic2_Playback

  MM                  MM
  ii                  ii
  cc                  cc

  PP                  PP
  ll                  ll
  aa                  aa
  yy                  yy
  bb                  bb
  aa                  aa
  cc                  cc
  kk                  kk

  VV                  VV
  oo                  oo
  ll                  ll
  uu                  uu
  mm                  mm
  ee                  ee

 [Mm]                [Nn]
   ^                  ^^-- so are those, separately
   +-- this one is a different muter :-)

Where the text is the same, it's supposed to signify the same bits 
in the hardware.

Right now in v8 it's (and that's going to take a lot of horizontal space, 
sorry - I know E-Mails like this aren't so nice to read):

Mic_Playback_Volume Left_Mic1_Playback_Switch Right_Mic1_Playback_Switch Left_Mic2_Playback_Switch Right_Mic2_Playback_Switch

  MM                  
  ii                  
  cc                  

  PP                  
  ll                  
  aa                  
  yy                  
  bb                  
  aa                  
  cc                  
  kk                  

  VV                  
  oo                  
  ll                  
  uu                  
  mm                  
  ee                  

                    [MM]                      [NN]                       [OO]                      [PP]
                      ^- WTF                   ^- WTF                      ^- WTF                   ^- WTF

(Actually, it's worse - believe it or not, that's how the simplified explanation looks)

> Unfortunately, that is exposed to the user-space. Once it's in, you
> cannot change it / fix it anymore.

Hmm. Right. Let's get it to work nicely then.