[alsa-devel] HDA: Sound mutes when combination is below -48 dB
david.henningsson at canonical.com
Fri Dec 3 12:30:02 CET 2010
I'm trying to nail down a strange behaviour. I have one "Master" and one
"Speaker" (or "Headphone") volume control, each ranging from -48 dB to 0
dB. Whenever the sum of "Master" and "Speaker" is below -48 dB, the
output mutes. Codec is attached.
"Master" is a "Virtual master" control, and both "Master" and "Speaker"
control amp-out on nid 0x13. Nid 0x13 does not have amp-out caps, but
the AFG specifies a range of -96 dB to 0 dB in 0.75 dB steps.
There is some strange things here. First, in
patch_sigmatel:create_controls_idx, there is this comment:
/* if dB scale is over -64dB, and finer enough,
* let's reduce it to half
Hmm? Removing half of the volume slider?
Second, assuming we actually buy this decision, wouldn't it make sense
for people to be able to combine Master and Speaker to get the full -96
to 0 dB range? Instead, "Master" is just working over the range defined
Third, there is an interesting condition in hda_codec.c:update_amp_value:
if (val > 0)
val += ofs;
Now this is in practice turning all volume controls which have ofs (e g
those being "reduced to half") to a minimum-is-mute error: I can set the
amp value to either 0 (-96 dB) or the 65 - 127 range (~ -48 dB - 0 dB).
So it isn't really mute, it's -96 dB signal, but I can't hear that anyway.
So; I think I understand the problem, but I'm not sure of where I should
try to patch it, to make the best solution.
Finally, is there right to exist for both "virtual masters" and the
"PCM" softvol talked about a while ago? If I were to decide, I'd
personally like them both removed (the additional complexity isn't
motivated IMO), but wouldn't it at least make sense to name the virtual
master "PCM", to avoid the PCM softvol?
David Henningsson, Canonical Ltd.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
More information about the Alsa-devel