[alsa-devel] ALSA bug 0002948

Brian Hinz bphinz at hotmail.com
Mon Sep 3 23:31:40 CEST 2007


Hi,

I'll apologize up front if this post seems a little incoherent, I've been 
trying to find a solution to this bug for a few months now and this is sort 
of a collection of observations that I've made and I'm hoping someone might 
read this and a light will go on...

The problem is no sound from a stac9200 on various gateway models, although 
it's possible to get sound from the mic port, never from the hp or internal 
stereo speakers. I recently used a windows utility called "regmon" to log 
the registry events that occurred during a jack cycle on the hp port. I 
expected to see something like this:

...
stsystra.exe:2380 SetValue 
HKLM\Software\Sigmatel\GlobalState\STSysTray\1.0\JackPresenced SUCCESS 0x0
...

indicating an event on port D, but instead got:

...
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\CompRatio 
SUCCESS 0xC8
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\CompAttack 
SUCCESS 0x26B6
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\CompRelease 
SUCCESS 0x26B6
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\CompThreshDb 
SUCCESS 0xFFFFFDA8
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\MakeupGainDB 
SUCCESS 0xC8
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\GateRatio 
SUCCESS 0x258
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\GateAttack 
SUCCESS 0x2706
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\GateRelease 
SUCCESS 0x2706
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\GateThreshDb 
SUCCESS 0xFFFFDCD8
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\Flags 
SUCCESS 0x9
...
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\CompRatio 
SUCCESS 0xE74
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\CompAttack 
SUCCESS 0x26AC
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\CompRelease 
SUCCESS 0x26AC
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\CompThreshDb 
SUCCESS 0x0
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\MakeupGainDB 
SUCCESS 0x0
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\GateRatio 
SUCCESS 0x64
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\GateAttack 
SUCCESS 0x2328
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\GateRelease 
SUCCESS 0x2328
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\GateThreshDb 
SUCCESS 0xFFFFDCD8
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\Flags 
SUCCESS 0xB
...

and upon removal:

...
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\CompRatio 
SUCCESS 0xC8
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\CompAttack 
SUCCESS 0x26B6
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\CompRelease 
SUCCESS 0x26B6
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\CompThreshDb 
SUCCESS 0xFFFFFDA8
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\MakeupGainDB 
SUCCESS 0xC8
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\GateRatio 
SUCCESS 0x258
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\GateAttack 
SUCCESS 0x2706
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\GateRelease 
SUCCESS 0x2706
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\GateThreshDb 
SUCCESS 0xFFFFDCD8
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Compressor\Flags 
SUCCESS 0x8
...
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\CompRatio 
SUCCESS 0xE74
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\CompAttack 
SUCCESS 0x26AC
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\CompRelease 
SUCCESS 0x26AC
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\CompThreshDb 
SUCCESS 0x0
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\MakeupGainDB 
SUCCESS 0x0
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\GateRatio 
SUCCESS 0x64
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\GateAttack 
SUCCESS 0x2328
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\GateRelease 
SUCCESS 0x2328
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\GateThreshDb 
SUCCESS 0xFFFFDCD8
SetValue 
HKLM\System\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005\Settings\filter\Rear\Presets\_Initial\Render\Limiter\Flags 
SUCCESS 0xA
...

Notice how the "Flags" key changes?  I don't understand much of this, but it 
seems like the output is being manipulated via digital post-processing 
rather than re-tasking of the analog pin widgets.  I had also been trying to 
make sense of the following line in the windows driver file:

InitVerbs: 03, a0, 45, 01;

which I'd guessed earlier could be interpreted as verb 0x3a0 and payload of 
0x4501, (amplifier gain/mute, set input amp, port B(?), unmute, gain step 1) 
which actually makes some sense in this context, since if the flags key is 
referencing pin widgets the input mux should be unmuted if it's to be used 
as the limiter.

So if I'm actually on the right track here, how would something like this be 
implemented in ALSA? Via /etc/asoundrc?  I tried setting the digital mixer 
as the default pcm device and now the gnome-volume-applet shows the device 
as being muted, and is unable to unmute it.  Nothing is muted in alsamixer 
though, so I'm guessing that I didn't do this correctly in any event.

Another potentially interesting observation is that in the windows sound 
control options there is both a master volume control and a "Wave" volume 
control which seem to be bound together somehow even though they are 
independent controls.  ie: the wave control appears to have the exact same 
function as the master volume.

Lastly, the system beep (which for what it's worth "sounds digital" to my 
untrained ears), works prior to the snd-hda-intel module being loaded, but 
not afterwards, even when unloaded.  Is there any debugging code aready in 
alsa that would produce a copy of /proc/asound/card0/codec#0 prior to any 
codec initialization?

If anyone can make some suggestions I'd be quite grateful.  Also, if there 
is any specific debugging results you'd like to see let me know and I'll 
append them to the bug report.

Thanks,
-brian




More information about the Alsa-devel mailing list