]> git.alsa-project.org Git - alsa-lib.git/commitdiff
USB-Audio: Add second S/PDIF device on Phiree U2
authorAnssi Hannula <anssi.hannula@iki.fi>
Tue, 8 Jul 2014 08:19:20 +0000 (11:19 +0300)
committerTakashi Iwai <tiwai@suse.de>
Tue, 8 Jul 2014 10:36:03 +0000 (12:36 +0200)
Phiree U2 has an unusual configuration. It only has S/PDIF output, but
there are still two devices presented:
- device 0: PCM audio, subject to volume control
- device 1: non-PCM data (passthrough), not subject to volume control

It looks like the AES bits are set according to the selected device,
since outputting PCM data via device 1 will not work (silence).

Currently only the device 0 is shown via the "iec958" alias, and the
second device is not accessible via hinted aliases.

Simply provide access to both of these devices via the "iec958" alias.

Reported-by: touc @ XBMC forum
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
src/conf/cards/USB-Audio.conf

index ce3ae019f7f6fa91ca224074d12891217f242300..77a48b9f5562bf6d10b08103fd86974b91de7195 100644 (file)
@@ -52,6 +52,11 @@ USB-Audio.pcm.iec958_device {
        "USB Device 0x46d:0x992" 999
 }
 
+# Second iec958 device number, if any.
+USB-Audio.pcm.iec958_2_device {
+       "PHIREE U2" 1  # 0 = PCM S/PDIF, 1 = non-PCM S/PDIF
+}
+
 
 # If a device requires non-standard definitions for front, surround40,
 # surround51, surround71 or iec958, they can be defined here.
@@ -422,4 +427,39 @@ USB-Audio.pcm.iec958.0 {
        }
 }
 
+USB-Audio.pcm.iec958.1 {
+       @args [ CARD AES0 AES1 AES2 AES3 ]
+       @args.CARD { type string }
+       @args.AES0 { type integer }
+       @args.AES1 { type integer }
+       @args.AES2 { type integer }
+       @args.AES3 { type integer }
+       @func refer
+       name {
+               @func concat
+               strings [
+                       "cards.USB-Audio."
+                       { @func card_name card $CARD }
+                       ".pcm.iec958_2:CARD=" $CARD
+                       ",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3
+               ]
+       }
+       default {
+               # FIXME: we cannot set the AES parameters
+               type hw
+               card $CARD
+               device {
+                       @func refer
+                       name {
+                               @func concat
+                               strings [
+                                       "cards.USB-Audio.pcm.iec958_2_device."
+                                       { @func card_name card $CARD }
+                               ]
+                       }
+                       default 999
+               }
+       }
+}
+
 # vim: ft=alsaconf