[alsa-devel] [RFC 07/12] ASoC: core: Change SOC_SINGLE/DOUBLE_VALUE representation
broonie at opensource.wolfsonmicro.com
Tue Oct 4 17:37:06 CEST 2011
On Tue, Oct 04, 2011 at 02:39:44PM +0300, Peter Ujfalusi wrote:
> SOC_SINGLE/DOUBLE_VALUE is used for mixer controls, where the
> bits are within one register.
> Assign .rreg to be the same as .reg for these types.
Just a general note about your changelogs - the indentation is really
random, normally we have a blank line between paragraphs and have
similar line lengths within paragraphs.
> With this change we can tell if the mixer in question:
> is mono:
> mc->reg == mc->rreg && mc->shift == mc->rshift
> is stereo, within single register:
> mc->reg == mc->rreg && mc->shift != mc->rshift
> is stereo, in two registers:
> mc->reg != mc->rreg && mc->shift == mc->rshift
reg != rreg should be enough.
> +static inline int snd_soc_volsw_is_stereo(struct soc_mixer_control *mc)
> + if (mc->reg == mc->rreg && mc->shift == mc->rshift)
> + return 0;
> + /*
> + * mc->reg == mc->rreg && mc->shift != mc->rshift, or
> + * mc->reg != mc->rreg && mc->shift == mc->rshift means that the control
> + * is stereo (bits in one register or in two registers)
> + */
> + return 1;
More information about the Alsa-devel