diff options
author | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2018-12-11 19:17:31 +0900 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2018-12-11 14:56:38 +0100 |
commit | 5bfb841e2f5952f5a6d8540dfda196769b358f8c (patch) | |
tree | ec67794c9bc82cff2067b5f856df2277a2e44dc8 /sound/firewire/fireface/ff-proc.c | |
parent | 3c3b892b3735edcc9e0be0aa129c72613e3f156e (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.c | 23 |
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: |