From 06ac0b6f8f74e98d32f9dea5209bd26f3e7b50ba Mon Sep 17 00:00:00 2001
From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date: Mon, 18 Jun 2018 21:07:53 +0900
Subject: [PATCH] ALSA: firewire-motu: add a flag for AES/EBU on XLR interface
Git-commit: 06ac0b6f8f74e98d32f9dea5209bd26f3e7b50ba
Patch-mainline: v4.19-rc1
References: bsc#1051510
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 | 5 +++++
sound/firewire/motu/motu-protocol-v3.c | 5 +++++
sound/firewire/motu/motu.h | 2 +-
3 files changed, 11 insertions(+), 1 deletion(-)
--- a/sound/firewire/motu/motu-protocol-v2.c
+++ b/sound/firewire/motu/motu-protocol-v2.c
@@ -156,6 +156,11 @@ static void calculate_fixed_part(struct
pcm_chunks[1] += 4;
}
+ 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
--- a/sound/firewire/motu/motu-protocol-v3.c
+++ b/sound/firewire/motu/motu-protocol-v3.c
@@ -195,6 +195,11 @@ static void calculate_fixed_part(struct
pcm_chunks[1] += 4;
}
+ 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.
--- a/sound/firewire/motu/motu.h
+++ b/sound/firewire/motu/motu.h
@@ -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,