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

From: Danny Milosavljevic
Date: Sat Mar 19 2016 - 12:14:41 EST

Hi Mark,

my question is whether it's possible to group together the left and right channel into one selem, and also if it's possible to reuse volumes then. For example:

For sun4i-codec Mic there's right now:
- Left Mixer Mic1 Playback Switch
- Left Mixer Mic2 Playback Switch
- Right Mixer Mic1 Playback Switch
- Right Mixer Mic2 Playback Switch
- Mic Playback Volume

If possible, it could also then be collected together as:
- Mic1 Playback:
Left Mixer Mic1 Playback Switch,
Right Mixer Mic1 Playback Switch,
Mic Playback Volume
- Mic2 Playback:
Left Mixer Mic2 Playback Switch,
Right Mixer Mic2 Playback Switch,
Mic Playback Volume [note: there it is again]

... where each outer group (f.e. "- Mic1 Playback:") is a selem (slider with two mutes in alsamixer).

alsamixer has support for seperate left and right channel muting so it would cut down a lot on the number of visible controls.

But as you can see, Mic Playback Volume is also shared.

Is it possible to group them together like this? How?

Right now, while everything technically works, it's overwhelming to use alsamixer with sun4i-codec as a user - you have to *scroll* for quite a while.

Additionally, while I'm at it:

There's one capture volume right in front of the ADC. Whatever it is you capture, this tells you the gain for the ADC. But for some inputs, there are additional preamps. Right now in the v8 patch we don't distinguish between preamps and ADC gains (because I don't think it's possible), although the user has to kinda distinguish them in his head because for inputs which have preamps only the preamp and the adc gain *together* specify the total gain in the end.

E.g. in the hardware it's

Mic In -> | Mic Preamp | -> | ADC Gain | -> | ADC |

while in alsamixer it's:

[Capture Controls:]

| Mic Preamp | | Capture Volume | | xyz Preamp | | abc Preamp | | qrs Preamp |
^--- ADC Gain

Is it possible to somehow distinguish those in alsamixer? Do we want to?