[alsa-devel] [RFC PATCH] ASoC: wm8741: Add differential mono mode support

Sergej Sawazki ce3a at gmx.de
Tue May 5 14:19:38 CEST 2015



Am 5. Mai 2015 13:22:39 MESZ, schrieb Mark Brown <broonie at kernel.org>:
>On Mon, May 04, 2015 at 09:03:56PM +0200, Sergej Sawazki wrote:
>> Am 04.05.2015 um 13:25 schrieb Mark Brown:
>> >On Fri, May 01, 2015 at 08:13:57PM +0200, Sergej Sawazki wrote:
>> >
>> >>+static const struct snd_kcontrol_new
>wm8741_snd_controls_mono_right[] = {
>> >>+	SOC_SINGLE_TLV("Fine Playback Volume Right",
>WM8741_DACRLSB_ATTENUATION,
>> >>+		1, 255, 1, dac_tlv_fine),
>> >>+	SOC_SINGLE_TLV("Playback Volume Right",
>WM8741_DACRMSB_ATTENUATION,
>> >>+		0, 511, 1, dac_tlv),
>> >>+};
>
>> >Please follow the control naming standard in ControlNames.txt: all
>> >volume controls must have Volume as the last word in the name.
>
>> Thanks for this information. I would suggest "Right Fine Playback
>> Volume". Where "Right" is the "CHANNEL" from ControlNames.txt.
>> However, there is no "Right" in the "CHANNEL" section.
>> What do you think?
>
>If the device is in a mono mode it shouldn't have Left or Right in the
>control name at all.

The mono mode of the device should not be confused
with the ALSA mono mode. If the device is in mono mode
it either plays the left (mono left mode) or the right (mono
right mode) channel.

My board has two of this DACs (left and right channel). 
The control names should be different, hence my
suggestion for the "Left" and "Right" prefixes.

Another approach would be to say that the machine
driver is responsible for mixer controls if the devices
are in mono mode. What do you think?

>> >>  	.playback = {
>> >>  		.stream_name = "Playback",
>> >>-		.channels_min = 2,  /* Mono modes not yet supported */
>> >>+		.channels_min = 1,
>> >>  		.channels_max = 2,
>
>> >This should be varying with the platform data: in the mono modes we
>> >can't do stereo and I suspect the stereo modes may have issues with
>> >mono.
>
>> I think this should be always ".channels_min = 2". In "mono mode"
>> the DAC plays either the right or the left channel, however the I2S
>> signal is expected to be stereo.
>
>Does the device only do I2S or can it do DSP modes as well (and if it
>does are they OK with an actual mono signal)?

It can do DSP A and B, but they do not support an actual
mono signal (left + right only).

-- 
Sergej


More information about the Alsa-devel mailing list