'Twas brillig, and Clemens Ladisch at 08/10/10 14:41 did gyre and gimble:
Colin Guthrie wrote:
'Twas brillig, and Clemens Ladisch at 07/10/10 09:05 did gyre and gimble:
Please try this patch.
+++ b/sound/pci/hda/patch_sigmatel.c ...
Seemed to do something. Now, rather than printing -46.5dB then the Master slider is down at 0, it prints "mute".
Is this the extent of the fix? i.e. to correctly report that the bottom value is muted?
Yes.
Cool.
If so, then is there a way to tell this via an API so that I can tell PA to not control the slider down to it's 0 value in order to avoid the auto mute?
Alsamixer uses the standard dB information that should also be used by PA.
I think something in there is busted, but it's likely at the PA end.
This is the debug from a volume that is ultimately less than the min dB (i.e. ~50dB or there about - certainly more attenuation than -46.5dB) (I should really make it so it prints the dB volume here too)
D: alsa-sink.c: Requested volume: 0: 13% 1: 13% D: alsa-sink.c: Got hardware volume: 0: 0% 1: 0% D: alsa-sink.c: Calculated software volume: 0: 0% 1: 0% (accurate-enough=no)
And here is something for ~40dB:
D: alsa-sink.c: Requested volume: 0: 19% 1: 19% D: alsa-sink.c: Got hardware volume: 0: 19% 1: 19% D: alsa-sink.c: Calculated software volume: 0: 99% 1: 99% (accurate-enough=yes)
In this case the accurate-enough checks succeed vs before when they fail.
D: alsa-mixer.c: Activating path analog-output D: alsa-mixer.c: Path analog-output (Analog Output), direction=1, priority=99, probed=yes, supported=yes, has_mute=yes, has_volume=yes, has_dB=yes, min_volume=0, max_volume=31, min_dB=-97.5, max_dB=0 D: alsa-mixer.c: Element Master, direction=1, switch=1, volume=1, enumeration=0, required=0, required_absent=0, mask=0x3600000000f66, n_channels=2, override_map=yes D: alsa-mixer.c: Element PCM, direction=1, switch=0, volume=1, enumeration=0, required=0, required_absent=0, mask=0x3600000000f66, n_channels=2, override_map=yes I: alsa-sink.c: Hardware volume ranges from -97.50 dB to 0.00 dB. I: alsa-sink.c: No particular base volume set, fixing to 0 dB I: alsa-sink.c: Using hardware volume control. Hardware dB scale supported. I: alsa-sink.c: Using hardware mute control. D: alsa-util.c: snd_pcm_dump(): D: alsa-util.c: Soft volume PCM D: alsa-util.c: Control: PCM Playback Volume D: alsa-util.c: min_dB: -51 D: alsa-util.c: max_dB: 0 D: alsa-util.c: resolution: 256 D: alsa-util.c: Its setup is: D: alsa-util.c: stream : PLAYBACK D: alsa-util.c: access : MMAP_INTERLEAVED D: alsa-util.c: format : S16_LE D: alsa-util.c: subformat : STD D: alsa-util.c: channels : 2 D: alsa-util.c: rate : 44100 D: alsa-util.c: exact rate : 44100 (44100/1) D: alsa-util.c: msbits : 16 D: alsa-util.c: buffer_size : 16384 D: alsa-util.c: period_size : 8192 D: alsa-util.c: period_time : 185759 D: alsa-util.c: tstamp_mode : ENABLE D: alsa-util.c: period_step : 1 D: alsa-util.c: avail_min : 15502 D: alsa-util.c: period_event : 0 D: alsa-util.c: start_threshold : -1 D: alsa-util.c: stop_threshold : 4611686018427387904 D: alsa-util.c: silence_threshold: 0 D: alsa-util.c: silence_size : 0 D: alsa-util.c: boundary : 4611686018427387904 D: alsa-util.c: Slave: Hardware PCM card 1 'HDA Intel' device 0 subdevice 0 D: alsa-util.c: Its setup is: D: alsa-util.c: stream : PLAYBACK D: alsa-util.c: access : MMAP_INTERLEAVED D: alsa-util.c: format : S16_LE D: alsa-util.c: subformat : STD D: alsa-util.c: channels : 2 D: alsa-util.c: rate : 44100 D: alsa-util.c: exact rate : 44100 (44100/1) D: alsa-util.c: msbits : 16 D: alsa-util.c: buffer_size : 16384 D: alsa-util.c: period_size : 8192 D: alsa-util.c: period_time : 185759 D: alsa-util.c: tstamp_mode : ENABLE D: alsa-util.c: period_step : 1 D: alsa-util.c: avail_min : 15502 D: alsa-util.c: period_event : 0 D: alsa-util.c: start_threshold : -1 D: alsa-util.c: stop_threshold : 4611686018427387904 D: alsa-util.c: silence_threshold: 0 D: alsa-util.c: silence_size : 0 D: alsa-util.c: boundary : 4611686018427387904 D: alsa-util.c: appl_ptr : 0 D: alsa-util.c: hw_ptr : 0
I'll try and work out why PA still insists on setting Master to 0 aka -99999.99dB :D
Many thanks for the patch.
Col