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

From: Maxime Ripard
Date: Mon Mar 21 2016 - 13:54:53 EST

On Sat, Mar 19, 2016 at 05:13:36PM +0100, Danny Milosavljevic wrote:
> 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?

As I recall it, we were mostly discussing the how to deal with the ADC
muxer that muxes both left and right at the same time (so shared
controls), but with different source on each channel.

For example, some valid values are:
4: left channel Mic 1, right channel mic 2
5: left and right channel are Mic1 and Mic2 mixed

As I understand it, you can have shared controls by sharing the
kcontrols structure, but then, you can't different labels.


Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering

Attachment: signature.asc
Description: Digital signature