[alsa-devel] iec958 switch uneffective while playing ac3 stream

Dag Lem dag at nimrod.no
Tue Apr 3 11:56:30 CEST 2007

Dominique Dumont <domi at komarr.grenoble.hp.com> writes:


> At this point, I think there's a problem with the fact that playing
> ac3 stream is done with:
> - set digi converter
> - then set the stream format.
> If the stream format is not valid when the digi converter is set up,
> there's a chance that the digi converter goes belly up.
> I reckon that setting the stream *then* the digi converter would be safer.
> I've not yet tested this theory.

I have been able to shave one step off the workaround, it can be done
like this:

1. Turn off IEC958 in alsamixer.
2. Play AC3 stream.
3. Turn on IEC958 in alsamixer while the AC3 stream is playing.

Note that in order to toggle the IEC958 switch while a stream is
playing you have to change "true" to "false" in the following setting
in /etc/alsa/cards/HDA-Intel.conf:

name "IEC958 Playback Switch"
lock false

I'm looking forward to hearing about the outcome if you're going to
test reordering the initialization sequence. The question is whether
it is sufficient to reorder the sequence, or whether it is actually
necessary to start sending data through the converter before turning
the digital output bit on.

To confuse things further it also seems to work if you use the default
"multiout" device (i.e. don't specify any device). I suppose you have
to set the PCM volume to max here, as this device does volume mixing
in software.

Best regards,

Dag Lem

More information about the Alsa-devel mailing list