Peter Robinson e81142
From patchwork Thu Mar  2 10:12:06 2017
Peter Robinson e81142
Content-Type: text/plain; charset="utf-8"
Peter Robinson e81142
MIME-Version: 1.0
Peter Robinson e81142
Content-Transfer-Encoding: 7bit
Peter Robinson e81142
Subject: conf/cards: add VC4-HDMI card
Peter Robinson e81142
From: Boris BREZILLON <boris.brezillon@free-electrons.com>
Peter Robinson e81142
X-Patchwork-Id: 9599837
Peter Robinson e81142
Message-Id: <1488449526-16850-1-git-send-email-boris.brezillon@free-electrons.com>
Peter Robinson e81142
To: Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>,
Peter Robinson e81142
 Lars-Peter Clausen <lars@metafoo.de>, alsa-devel@alsa-project.org
Peter Robinson e81142
Cc: Eric Anholt <eric@anholt.net>,
Peter Robinson e81142
 Boris Brezillon <boris.brezillon@free-electrons.com>
Peter Robinson e81142
Date: Thu,  2 Mar 2017 11:12:06 +0100
Peter Robinson e81142
Peter Robinson e81142
Add a conf file for the VC4-HDMI sound card.
Peter Robinson e81142
Peter Robinson e81142
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Peter Robinson e81142
---
Peter Robinson e81142
Hi,
Peter Robinson e81142
Peter Robinson e81142
This patch is adding a card config file for the audio sound card whose
Peter Robinson e81142
driver has been submitted here [1] (not accepted yet).
Peter Robinson e81142
Peter Robinson e81142
Since I am a total newbie to the alsa world, I'd like to get some
Peter Robinson e81142
feedback on this patch.
Peter Robinson e81142
Peter Robinson e81142
Also, the card only supports 2 to 8 channels, and I wonder if we should
Peter Robinson e81142
add a plug element to support mono streams, and where this element
Peter Robinson e81142
should be added (after or before the iec958 element).
Peter Robinson e81142
Peter Robinson e81142
Regards,
Peter Robinson e81142
Peter Robinson e81142
Boris
Peter Robinson e81142
Peter Robinson e81142
[1]https://www.spinics.net/lists/arm-kernel/msg565182.html
Peter Robinson e81142
Peter Robinson e81142
 src/conf/cards/Makefile.am   |  1 +
Peter Robinson e81142
 src/conf/cards/aliases.conf  |  1 +
Peter Robinson e81142
 src/conf/cards/vc4-hdmi.conf | 64 ++++++++++++++++++++++++++++++++++++++++++++
Peter Robinson e81142
 3 files changed, 66 insertions(+)
Peter Robinson e81142
 create mode 100644 src/conf/cards/vc4-hdmi.conf
Peter Robinson e81142
Peter Robinson e81142
diff --git a/src/conf/cards/Makefile.am b/src/conf/cards/Makefile.am
Peter Robinson e81142
index e8b530e80a8f..00999f0186d6 100644
Peter Robinson e81142
--- a/src/conf/cards/Makefile.am
Peter Robinson e81142
+++ b/src/conf/cards/Makefile.am
Peter Robinson e81142
@@ -51,6 +51,7 @@ cfg_files = aliases.conf \
Peter Robinson e81142
 	TRID4DWAVENX.conf \
Peter Robinson e81142
 	USB-Audio.conf \
Peter Robinson e81142
 	YMF744.conf \
Peter Robinson e81142
+	vc4-hdmi.conf \
Peter Robinson e81142
 	VIA686A.conf \
Peter Robinson e81142
 	VIA8233.conf \
Peter Robinson e81142
 	VIA8233A.conf \
Peter Robinson e81142
diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf
Peter Robinson e81142
index 60f9d26974fd..18a920f41e46 100644
Peter Robinson e81142
--- a/src/conf/cards/aliases.conf
Peter Robinson e81142
+++ b/src/conf/cards/aliases.conf
Peter Robinson e81142
@@ -55,6 +55,7 @@
Peter Robinson e81142
 AV200 cards.CMI8788
Peter Robinson e81142
 CMI8786 cards.CMI8788
Peter Robinson e81142
 CMI8787 cards.CMI8788
Peter Robinson e81142
+VC4-HDMI cards.vc4-hdmi
Peter Robinson e81142
 
Peter Robinson e81142
 <confdir:pcm/default.conf>
Peter Robinson e81142
 <confdir:pcm/dmix.conf>
Peter Robinson e81142
diff --git a/src/conf/cards/vc4-hdmi.conf b/src/conf/cards/vc4-hdmi.conf
Peter Robinson e81142
new file mode 100644
Peter Robinson e81142
index 000000000000..027804a145d1
Peter Robinson e81142
--- /dev/null
Peter Robinson e81142
+++ b/src/conf/cards/vc4-hdmi.conf
Peter Robinson e81142
@@ -0,0 +1,64 @@
Peter Robinson e81142
+#
Peter Robinson e81142
+# Configuration for the VC4-HDMI sound card using software IEC958
Peter Robinson e81142
+# subframe conversion
Peter Robinson e81142
+#
Peter Robinson e81142
+
Peter Robinson e81142
+<confdir:pcm/front.conf>
Peter Robinson e81142
+
Peter Robinson e81142
+vc4-hdmi.pcm.front.0 {
Peter Robinson e81142
+	@args [ CARD ]
Peter Robinson e81142
+	@args.CARD {
Peter Robinson e81142
+		type string
Peter Robinson e81142
+	}
Peter Robinson e81142
+	type hw
Peter Robinson e81142
+	card $CARD
Peter Robinson e81142
+}
Peter Robinson e81142
+
Peter Robinson e81142
+# default with dmix
Peter Robinson e81142
+vc4-hdmi.pcm.default {
Peter Robinson e81142
+	@args [ CARD ]
Peter Robinson e81142
+	@args.CARD {
Peter Robinson e81142
+		type string
Peter Robinson e81142
+	}
Peter Robinson e81142
+	type asym
Peter Robinson e81142
+	playback.pcm {
Peter Robinson e81142
+		type plug
Peter Robinson e81142
+		slave.pcm {
Peter Robinson e81142
+			@func concat
Peter Robinson e81142
+			strings [ "dmix:" $CARD ]
Peter Robinson e81142
+		}
Peter Robinson e81142
+	}
Peter Robinson e81142
+}
Peter Robinson e81142
+
Peter Robinson e81142
+<confdir:pcm/iec958.conf>
Peter Robinson e81142
+
Peter Robinson e81142
+vc4-hdmi.pcm.iec958.0 {
Peter Robinson e81142
+	@args [ CARD AES0 AES1 AES2 AES3 ]
Peter Robinson e81142
+	@args.CARD {
Peter Robinson e81142
+		type string
Peter Robinson e81142
+	}
Peter Robinson e81142
+	@args.AES0 {
Peter Robinson e81142
+		type integer
Peter Robinson e81142
+	}
Peter Robinson e81142
+	@args.AES1 {
Peter Robinson e81142
+		type integer
Peter Robinson e81142
+	}
Peter Robinson e81142
+	@args.AES2 {
Peter Robinson e81142
+		type integer
Peter Robinson e81142
+	}
Peter Robinson e81142
+	@args.AES3 {
Peter Robinson e81142
+		type integer
Peter Robinson e81142
+	}
Peter Robinson e81142
+	type iec958
Peter Robinson e81142
+	slave {
Peter Robinson e81142
+		format IEC958_SUBFRAME_LE
Peter Robinson e81142
+		pcm {
Peter Robinson e81142
+			type plug
Peter Robinson e81142
+			slave.pcm {
Peter Robinson e81142
+				type hw
Peter Robinson e81142
+				card $CARD
Peter Robinson e81142
+			}
Peter Robinson e81142
+		}
Peter Robinson e81142
+	}
Peter Robinson e81142
+	status [ $AES0 $AES1 $AES2 $AES3 ]
Peter Robinson e81142
+}