[alsa-devel] SPDIF audio / non-audio bit

Takashi Iwai tiwai at suse.de
Fri Aug 15 16:59:22 CEST 2008

At Sat, 16 Aug 2008 00:45:33 +1000,
Ben Stanley wrote:
> On Thu, 2008-08-14 at 17:19 +0200, Takashi Iwai wrote:
> > Some drivers have the independent PCM IEC958 status bits while many
> > have only the default IEC958 status bits.  In the former case, the
> > driver resets automatically the status bits after closing the PCM
> > stream.  Your case is the latter one, which doesn't reset.  In this
> > case, usually alsa-lib takes the old setting back.  But when the
> > program crashes (or aborted unexpectedly), the new setting is kept
> > even after that, as you described in the above.
> Could you please clarify 
> 'independent PCM IEC958 status bits' vs 
> 'default IEC958 status bits', 
> perhaps by pointing out some drivers implementing each type?

Run the following:
	grep -r 'IEC958.*PCM_STREAM' sound/pci

These drivers have "IEC958 Playback PCM Stream" controls.  These
controls are assigned to PCM streams, and changed individually from
the "IEC958 Playback Default" control.  When the PCM stream is closed,
it's back to the status of "IEC958 Playback Default".

> > > Could someone set me straight here so that I can try to produce a
> > > permanent fix for this?
> > 
> > You can change the status easily via iecset program in alsa-utils.
> I note here that iecset does not accept --device=hw:0,1 for example. Any
> reason for this?

Because it's invalid.  The --device option is for a control device,
not for a PCM device.  If you want to change the secondary control
(i.e. "IEC958 Playback Default" with index=1), pass "-n 1" to iecset.


More information about the Alsa-devel mailing list