summaryrefslogtreecommitdiff
path: root/sound/firewire/fireface/ff-proc.c
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2018-12-11 19:17:31 +0900
committerTakashi Iwai <tiwai@suse.de>2018-12-11 14:56:38 +0100
commit5bfb841e2f5952f5a6d8540dfda196769b358f8c (patch)
treeec67794c9bc82cff2067b5f856df2277a2e44dc8 /sound/firewire/fireface/ff-proc.c
parent3c3b892b3735edcc9e0be0aa129c72613e3f156e (diff)
ALSA: fireface: add support for second optical interface for ADAT stream
Unlike Fireface 400, Fireface 800 have two pair of optical interface for ADAT signal and S/PDIF signal. ADAT signals for the interface are handled for sampling clock source separately. This commit modifies a parser for clock configuration to distinguish these two ADAT signals. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/firewire/fireface/ff-proc.c')
-rw-r--r--sound/firewire/fireface/ff-proc.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/sound/firewire/fireface/ff-proc.c b/sound/firewire/fireface/ff-proc.c
index f5f3a1997a9e..a0c550dabe9a 100644
--- a/sound/firewire/fireface/ff-proc.c
+++ b/sound/firewire/fireface/ff-proc.c
@@ -65,7 +65,10 @@ static void proc_dump_clock_config(struct snd_info_entry *entry,
} else {
switch ((data >> 10) & 0x07) {
case 0x00:
- src = "ADAT";
+ src = "ADAT1";
+ break;
+ case 0x01:
+ src = "ADAT2";
break;
case 0x03:
src = "S/PDIF";
@@ -121,7 +124,7 @@ static void proc_dump_sync_status(struct snd_info_entry *entry,
snd_iprintf(buffer, "none\n");
}
- snd_iprintf(buffer, "ADAT:");
+ snd_iprintf(buffer, "ADAT1:");
if ((data >> 8) & 0x04) {
if ((data >> 8) & 0x10)
snd_iprintf(buffer, "sync\n");
@@ -131,6 +134,16 @@ static void proc_dump_sync_status(struct snd_info_entry *entry,
snd_iprintf(buffer, "none\n");
}
+ snd_iprintf(buffer, "ADAT2:");
+ if ((data >> 8) & 0x08) {
+ if ((data >> 8) & 0x20)
+ snd_iprintf(buffer, "sync\n");
+ else
+ snd_iprintf(buffer, "lock\n");
+ } else {
+ snd_iprintf(buffer, "none\n");
+ }
+
snd_iprintf(buffer, "\nUsed external source:\n");
if (((data >> 22) & 0x07) == 0x07) {
@@ -138,7 +151,10 @@ static void proc_dump_sync_status(struct snd_info_entry *entry,
} else {
switch ((data >> 22) & 0x07) {
case 0x00:
- snd_iprintf(buffer, "ADAT:");
+ snd_iprintf(buffer, "ADAT1:");
+ break;
+ case 0x01:
+ snd_iprintf(buffer, "ADAT2:");
break;
case 0x03:
snd_iprintf(buffer, "S/PDIF:");
@@ -149,7 +165,6 @@ static void proc_dump_sync_status(struct snd_info_entry *entry,
case 0x07:
snd_iprintf(buffer, "Nothing:");
break;
- case 0x01:
case 0x02:
case 0x05:
case 0x06: