[alsa-devel] HDA: Sound mutes when combination is below -48 dB

David Henningsson 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 
by "Speaker".

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...
Name: hp.txt
Url: http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20101203/30a51a9d/attachment.txt 

More information about the Alsa-devel mailing list