ALSA: firewire-motu: add a flag for AES/EBU on XLR interface
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Mon, 18 Jun 2018 12:07:53 +0000 (21:07 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 19 Jun 2018 18:44:50 +0000 (20:44 +0200)
MOTU Traveler supports AES/EBU on XLR interface and data block of rx/tx
packet includes two chunk for the interface. This commit adds a flag
for this purpose.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/motu/motu-protocol-v2.c
sound/firewire/motu/motu-protocol-v3.c
sound/firewire/motu/motu.h

index 614f9b1..f25b1ba 100644 (file)
@@ -160,6 +160,11 @@ static void calculate_fixed_part(struct snd_motu_packet_format *formats,
                pcm_chunks[1] += 2;
        }
 
+       if (flags & SND_MOTU_SPEC_HAS_AESEBU_IFACE) {
+               pcm_chunks[0] += 2;
+               pcm_chunks[1] += 2;
+       }
+
        /*
         * All of v2 models have a pair of coaxial interfaces for digital in/out
         * port. At 44.1/48.0/88.2/96.0 kHz, packets includes PCM from these
index 2933539..7cc80a0 100644 (file)
@@ -199,6 +199,11 @@ static void calculate_fixed_part(struct snd_motu_packet_format *formats,
                pcm_chunks[1] += 2;
        }
 
+       if (flags & SND_MOTU_SPEC_HAS_AESEBU_IFACE) {
+               pcm_chunks[0] += 2;
+               pcm_chunks[1] += 2;
+       }
+
        /*
         * At least, packets have two data chunks for S/PDIF on coaxial
         * interface.
index bced040..2764bca 100644 (file)
@@ -79,7 +79,7 @@ enum snd_motu_spec_flags {
        SND_MOTU_SPEC_TX_MICINST_CHUNK  = 0x0004,
        SND_MOTU_SPEC_TX_RETURN_CHUNK   = 0x0008,
        SND_MOTU_SPEC_TX_REVERB_CHUNK   = 0x0010,
-       SND_MOTU_SPEC_TX_AESEBU_CHUNK   = 0x0020,
+       SND_MOTU_SPEC_HAS_AESEBU_IFACE  = 0x0020,
        SND_MOTU_SPEC_HAS_OPT_IFACE_A   = 0x0040,
        SND_MOTU_SPEC_HAS_OPT_IFACE_B   = 0x0080,
        SND_MOTU_SPEC_RX_MIDI_2ND_Q     = 0x0100,