[alsa-devel] [pulseaudio-discuss] [PATCH] alsa-mixer: Don't use the mono path in the analog-stereo mapping.

Raymond Yau superquad.vortex2 at gmail.com
Thu Sep 13 06:37:54 CEST 2012

2012-9-12 下午9:04 於 "Tanu Kaskinen" <tanuk at iki.fi> 寫道:
> As far as I can see, having a mono path in a stereo mapping doesn't
> make any sense. It also causes breakage: if the Master Mono mixer
> element has two volume channels,

Because ac97 codecs have an analog mixer which can downmix stereo to the
mono out pin.

Some hda codecs also have the mono out pin which connected to a mixer
widget for downmixing stereo from stereo DAC to mono

The master mono playback volume control of ac97 has only one channel , so
it is a bug of vm 's ac97 codec register emulation if the control has two
volume channels

Either removed the master mono register emulation from vm or pulseaudio
ignore the master mono switch of vm's ac97 codec

> the analog-output path gets removed
> due to being a subset of analog-output-mono, and that in turn causes
> the Master element getting muted.


The above patch try to assign the headphone path for the USB headsets which
have speaker playback volume control since speaker playback volume control
is not in pulseaudio ' s headphone path.

>Users generally don't like that.
> BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=54673

It look like a bug in output volume calculation of ac97 codec emulation in
those virtual machine if the emulated ac97 codec only has 16 bits DAC

or pulseaudio does not unmute pcm playback switch on those  ac97 codec
after user mute the sound in sound preference and pulseaudio mute both
master playback switch and pcm playback switch

Some tablet with alc203
use the master mono output for the mono speaker


For als4000 the master mono is only enum control  to  change the channel
map of the mono out

Simple mixer control 'Master Mono',0
  Capabilities: pswitch pswitch-joined cenum
  Items: 'L chan only' 'R chan only' 'L ch/2 + R ch/2'
  Item0: 'L chan only'


More information about the Alsa-devel mailing list