2012-9-12 下午9:04 於 "Tanu Kaskinen" tanuk@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.
http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/modules/alsa/al...
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.
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 resolution
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
http://git.alsa-project.org/?p=alsa-kernel.git;a=commitdiff;h=8f4f4ef6fed55a...
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'
https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/827393