Hi,

sorry for the late reply - i overlooked this post.

At Thu, 29 Jan 2004 14:51:34 +0100,
Thomas Charbonnel wrote:
> 
> I just had a look and here again there is code in the hdsp driver 
> directly inherited form the rme9652 driver. There are two competing 
> spdif bits handling mechanisms there, one hdsp specific dealing directly 
> with the card registers, and one alsa generic. There clearly is a 
> problem in that the spdif bits on the card are cleared on playback where 
> they shouldn't. It would be easy to fix, but I guess that the alsa 
> generic spdif bits handling code is here for some reason. Jaroslav or 
> Takashi, could you explain to me how this is supposed to work with alsa 
> ? I guess there is a plan for a generic spdif bits control interface, 
> but for now there seems to be nothing. Amixer doesn't even seem to 
> handle this properly, or does it ?

there are ususally two controls for the IEC958 status bits,
"IEC958 Playback Default" and "IEC958 Playback PCM Stream".
the former defines the "default" iec958 status bits as it name
stands.  the latter control defines a temporary status of the opened
stream.  normally, the default value is inherited to the temp value at
the open callback, and the temp value will be lost when the PCM is
closed.  (hence, it doesn't make sense to store/restore "IEC958
Playback PCM Stream" with alsactl although it's harmless.)

these controls are often defined with IFACE = PCM.  thus, amixer
doesn't handle them unless you specify iface explicitly.
unfortuantely, not all drivers follow this rule and use IFACE = MIXER
because of ease of coding.  it's a source of confusion.

BTW, you can see/change the default IEC958 status via iecset program
in alsa-utils.


regarding Jesse's problem:
it looks like RME*.conf are broken.
does the attached patch work?


Takashi
Index: alsa-lib/src/conf/cards/RME9636.conf
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-lib/src/conf/cards/RME9636.conf,v
retrieving revision 1.2
diff -u -r1.2 RME9636.conf
--- alsa-lib/src/conf/cards/RME9636.conf        25 Nov 2002 10:14:18 -0000      1.2
+++ alsa-lib/src/conf/cards/RME9636.conf        5 Feb 2004 14:27:28 -0000
@@ -53,6 +53,7 @@
                type ctl_elems
                hook_args [
                        {
+                               interface PCM
                                name "IEC958 Playback PCM Stream"
                                lock true
                                value [ $AES0 $AES1 $AES2 $AES3 ]
Index: alsa-lib/src/conf/cards/RME9652.conf
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-lib/src/conf/cards/RME9652.conf,v
retrieving revision 1.2
diff -u -r1.2 RME9652.conf
--- alsa-lib/src/conf/cards/RME9652.conf        25 Nov 2002 10:14:18 -0000      1.2
+++ alsa-lib/src/conf/cards/RME9652.conf        5 Feb 2004 14:27:20 -0000
@@ -1,10 +1,10 @@
 #
-# Configuration for the RME9636
+# Configuration for the RME9652
 #
 
 <confdir:pcm/front.conf>
 
-RME9636.pcm.front.0 {
+RME9652.pcm.front.0 {
        @args [ CARD ]
        @args.CARD {
                type string
@@ -18,7 +18,7 @@
 
 <confdir:pcm/iec958.conf>
 
-RME9636.pcm.iec958.0 {
+RME9652.pcm.iec958.0 {
        @args [ CARD AES0 AES1 AES2 AES3 ]
        @args.CARD {
                type string
@@ -53,6 +53,7 @@
                type ctl_elems
                hook_args [
                        {
+                               interface PCM
                                name "IEC958 Playback PCM Stream"
                                lock true
                                value [ $AES0 $AES1 $AES2 $AES3 ]
Index: alsa-lib/src/conf/cards/aliases.conf
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-lib/src/conf/cards/aliases.conf,v
retrieving revision 1.4
diff -u -r1.4 aliases.conf
--- alsa-lib/src/conf/cards/aliases.conf        27 Nov 2003 16:46:35 -0000      1.4
+++ alsa-lib/src/conf/cards/aliases.conf        5 Feb 2004 14:30:09 -0000
@@ -20,3 +20,4 @@
 au8810 cards.AU8810
 au8820 cards.AU8820
 au8830 cards.AU8830
+'H-DSP' cards.RME9652

Reply via email to