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?
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?
Maybe it's safer to have an independent PCM iec958 setting on all drivers. But this requires the change in alsa-lib (system) config, i.e. it may cause an incompatibility with older alsa-lib configs. This is an only drawback, I think.
I will try to figure this out after I have validated and submitted my 44100Hz patch for ca0106.
Ben.