From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: SPDIF audio / non-audio bit Date: Fri, 15 Aug 2008 16:59:22 +0200 Message-ID: References: <1218725321.32652.14.camel@localhost> <1218811533.32652.33.camel@localhost> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx1.suse.de (ns.suse.de [195.135.220.2]) by alsa0.perex.cz (Postfix) with ESMTP id CC86224458 for ; Fri, 15 Aug 2008 16:59:23 +0200 (CEST) In-Reply-To: <1218811533.32652.33.camel@localhost> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Ben Stanley Cc: alsa-devel@alsa-project.org List-Id: alsa-devel@alsa-project.org 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. Takashi