alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] conf: topology: Add the conf for SKL-rt286
@ 2016-04-05  5:04 Vinod Koul
  0 siblings, 0 replies; 12+ messages in thread
From: Vinod Koul @ 2016-04-05  5:04 UTC (permalink / raw)
  To: alsa-devel; +Cc: liam.r.girdwood, tiwai, broonie, Shreyas NC, patches.audio

From: Shreyas NC <shreyas.nc@intel.com>

The SKL RT286 I2S topology conf is provided here. The first patch adds that
along with binary data for modules.

The Second patch provides source of those binayy blobs and allows them to be
recompiled.

Shreyas NC (2):
  conf: topology: Add Skylake i2s conf
  conf: topology: Generate Private data binary blobs

 configure.ac                                       |    1 +
 src/conf/topology/Makefile.am                      |    2 +-
 src/conf/topology/sklrt286/Makefile.am             |    4 +
 src/conf/topology/sklrt286/codec0_in-cpr-1.bin     |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/codec0_in-mi.bin        |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/codec0_out-cpr-4.bin    |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/codec0_out-mo.bin       |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/codec1_out-cpr-5.bin    |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/codec1_out-mo.bin       |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/data/Makefile.am        |    4 +
 src/conf/topology/sklrt286/data/README             |    2 +
 src/conf/topology/sklrt286/data/compile_local      |   16 +
 src/conf/topology/sklrt286/data/configure.ac       |   30 +
 src/conf/topology/sklrt286/data/pvt.c              | 1815 ++++++++++++++++++++
 src/conf/topology/sklrt286/data/pvt_data.c         |   90 +
 src/conf/topology/sklrt286/data/pvt_data_local.h   |  115 ++
 .../topology/sklrt286/dmic01_hifi_in-cpr-3.bin     |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/dmic01_hifi_in-mi.bin   |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi1_pt_out-cpr-7.bin  |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi1_pt_out-cpr-8.bin  |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi2_pt_out-cpr-10.bin |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi2_pt_out-cpr-9.bin  |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi3_pt_out-cpr-11.bin |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi3_pt_out-cpr-12.bin |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/media0_in-cpr-0.bin     |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/media0_in-mi.bin        |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/media0_out-cpr-6.bin    |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/media0_out-mo.bin       |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/skl_i2s.conf            |  342 ++++
 29 files changed, 2420 insertions(+), 1 deletion(-)
 create mode 100644 src/conf/topology/sklrt286/Makefile.am
 create mode 100644 src/conf/topology/sklrt286/codec0_in-cpr-1.bin
 create mode 100644 src/conf/topology/sklrt286/codec0_in-mi.bin
 create mode 100644 src/conf/topology/sklrt286/codec0_out-cpr-4.bin
 create mode 100644 src/conf/topology/sklrt286/codec0_out-mo.bin
 create mode 100644 src/conf/topology/sklrt286/codec1_out-cpr-5.bin
 create mode 100644 src/conf/topology/sklrt286/codec1_out-mo.bin
 create mode 100644 src/conf/topology/sklrt286/data/Makefile.am
 create mode 100644 src/conf/topology/sklrt286/data/README
 create mode 100755 src/conf/topology/sklrt286/data/compile_local
 create mode 100644 src/conf/topology/sklrt286/data/configure.ac
 create mode 100644 src/conf/topology/sklrt286/data/pvt.c
 create mode 100644 src/conf/topology/sklrt286/data/pvt_data.c
 create mode 100644 src/conf/topology/sklrt286/data/pvt_data_local.h
 create mode 100644 src/conf/topology/sklrt286/dmic01_hifi_in-cpr-3.bin
 create mode 100644 src/conf/topology/sklrt286/dmic01_hifi_in-mi.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi1_pt_out-cpr-7.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi1_pt_out-cpr-8.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi2_pt_out-cpr-10.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi2_pt_out-cpr-9.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi3_pt_out-cpr-11.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi3_pt_out-cpr-12.bin
 create mode 100644 src/conf/topology/sklrt286/media0_in-cpr-0.bin
 create mode 100644 src/conf/topology/sklrt286/media0_in-mi.bin
 create mode 100644 src/conf/topology/sklrt286/media0_out-cpr-6.bin
 create mode 100644 src/conf/topology/sklrt286/media0_out-mo.bin
 create mode 100644 src/conf/topology/sklrt286/skl_i2s.conf

-- 
2.4.11

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v2 0/2] conf: topology: Add the conf for SKL-rt286
@ 2016-04-05  5:20 Vinod Koul
  2016-04-05  5:20 ` [PATCH v2 2/2] conf: topology: Generate Private data binary blobs Vinod Koul
  0 siblings, 1 reply; 12+ messages in thread
From: Vinod Koul @ 2016-04-05  5:20 UTC (permalink / raw)
  To: alsa-devel; +Cc: liam.r.girdwood, tiwai, broonie, Shreyas NC, patches.audio

From: Shreyas NC <shreyas.nc@intel.com>

The SKL RT286 I2S topology conf is provided here. The first patch adds that
along with binary data for modules.

The Second patch provides source of those binayy blobs and allows them to be
recompiled.

Shreyas NC (2):
  conf: topology: Add Skylake i2s conf
  conf: topology: Generate Private data binary blobs

 configure.ac                                       |    1 +
 src/conf/topology/Makefile.am                      |    2 +-
 src/conf/topology/sklrt286/Makefile.am             |    4 +
 src/conf/topology/sklrt286/codec0_in-cpr-1.bin     |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/codec0_in-mi.bin        |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/codec0_out-cpr-4.bin    |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/codec0_out-mo.bin       |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/codec1_out-cpr-5.bin    |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/codec1_out-mo.bin       |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/data/Makefile.am        |    4 +
 src/conf/topology/sklrt286/data/README             |    2 +
 src/conf/topology/sklrt286/data/compile_local      |   16 +
 src/conf/topology/sklrt286/data/configure.ac       |   30 +
 src/conf/topology/sklrt286/data/pvt.c              | 1815 ++++++++++++++++++++
 src/conf/topology/sklrt286/data/pvt_data.c         |   90 +
 src/conf/topology/sklrt286/data/pvt_data_local.h   |  115 ++
 .../topology/sklrt286/dmic01_hifi_in-cpr-3.bin     |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/dmic01_hifi_in-mi.bin   |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi1_pt_out-cpr-7.bin  |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi1_pt_out-cpr-8.bin  |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi2_pt_out-cpr-10.bin |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi2_pt_out-cpr-9.bin  |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi3_pt_out-cpr-11.bin |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/hdmi3_pt_out-cpr-12.bin |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/media0_in-cpr-0.bin     |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/media0_in-mi.bin        |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/media0_out-cpr-6.bin    |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/media0_out-mo.bin       |  Bin 0 -> 4268 bytes
 src/conf/topology/sklrt286/skl_i2s.conf            |  342 ++++
 29 files changed, 2420 insertions(+), 1 deletion(-)
 create mode 100644 src/conf/topology/sklrt286/Makefile.am
 create mode 100644 src/conf/topology/sklrt286/codec0_in-cpr-1.bin
 create mode 100644 src/conf/topology/sklrt286/codec0_in-mi.bin
 create mode 100644 src/conf/topology/sklrt286/codec0_out-cpr-4.bin
 create mode 100644 src/conf/topology/sklrt286/codec0_out-mo.bin
 create mode 100644 src/conf/topology/sklrt286/codec1_out-cpr-5.bin
 create mode 100644 src/conf/topology/sklrt286/codec1_out-mo.bin
 create mode 100644 src/conf/topology/sklrt286/data/Makefile.am
 create mode 100644 src/conf/topology/sklrt286/data/README
 create mode 100755 src/conf/topology/sklrt286/data/compile_local
 create mode 100644 src/conf/topology/sklrt286/data/configure.ac
 create mode 100644 src/conf/topology/sklrt286/data/pvt.c
 create mode 100644 src/conf/topology/sklrt286/data/pvt_data.c
 create mode 100644 src/conf/topology/sklrt286/data/pvt_data_local.h
 create mode 100644 src/conf/topology/sklrt286/dmic01_hifi_in-cpr-3.bin
 create mode 100644 src/conf/topology/sklrt286/dmic01_hifi_in-mi.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi1_pt_out-cpr-7.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi1_pt_out-cpr-8.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi2_pt_out-cpr-10.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi2_pt_out-cpr-9.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi3_pt_out-cpr-11.bin
 create mode 100644 src/conf/topology/sklrt286/hdmi3_pt_out-cpr-12.bin
 create mode 100644 src/conf/topology/sklrt286/media0_in-cpr-0.bin
 create mode 100644 src/conf/topology/sklrt286/media0_in-mi.bin
 create mode 100644 src/conf/topology/sklrt286/media0_out-cpr-6.bin
 create mode 100644 src/conf/topology/sklrt286/media0_out-mo.bin
 create mode 100644 src/conf/topology/sklrt286/skl_i2s.conf

-- 
2.4.11

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v2 2/2] conf: topology: Generate Private data binary blobs
  2016-04-05  5:20 [PATCH v2 0/2] conf: topology: Add the conf for SKL-rt286 Vinod Koul
@ 2016-04-05  5:20 ` Vinod Koul
  2016-04-05 12:00   ` Takashi Iwai
  0 siblings, 1 reply; 12+ messages in thread
From: Vinod Koul @ 2016-04-05  5:20 UTC (permalink / raw)
  To: alsa-devel
  Cc: tiwai, patches.audio, liam.r.girdwood, Vinod Koul, broonie,
	Shreyas NC

From: Shreyas NC <shreyas.nc@intel.com>

The DSP modules need private data and that is provided as binary
blob. These blobs are compiled from C structures which specify module
configuration.

Signed-off-by: Shreyas NC <shreyas.nc@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
---
 src/conf/topology/sklrt286/data/Makefile.am      |    4 +
 src/conf/topology/sklrt286/data/README           |    2 +
 src/conf/topology/sklrt286/data/compile_local    |   16 +
 src/conf/topology/sklrt286/data/configure.ac     |   30 +
 src/conf/topology/sklrt286/data/pvt.c            | 1815 ++++++++++++++++++++++
 src/conf/topology/sklrt286/data/pvt_data.c       |   90 ++
 src/conf/topology/sklrt286/data/pvt_data_local.h |  115 ++
 7 files changed, 2072 insertions(+)
 create mode 100644 src/conf/topology/sklrt286/data/Makefile.am
 create mode 100644 src/conf/topology/sklrt286/data/README
 create mode 100755 src/conf/topology/sklrt286/data/compile_local
 create mode 100644 src/conf/topology/sklrt286/data/configure.ac
 create mode 100644 src/conf/topology/sklrt286/data/pvt.c
 create mode 100644 src/conf/topology/sklrt286/data/pvt_data.c
 create mode 100644 src/conf/topology/sklrt286/data/pvt_data_local.h

diff --git a/src/conf/topology/sklrt286/data/Makefile.am b/src/conf/topology/sklrt286/data/Makefile.am
new file mode 100644
index 000000000000..9898b9808055
--- /dev/null
+++ b/src/conf/topology/sklrt286/data/Makefile.am
@@ -0,0 +1,4 @@
+bin_PROGRAMS = pvt_data
+pvt_data_SOURCES = pvt_data.c
+AM_CPPFLAGS = \
+         -Wall -I../../../../../include
diff --git a/src/conf/topology/sklrt286/data/README b/src/conf/topology/sklrt286/data/README
new file mode 100644
index 000000000000..7d1261069dae
--- /dev/null
+++ b/src/conf/topology/sklrt286/data/README
@@ -0,0 +1,2 @@
+To compile the src file, run ./compile_local and then ./pvt_data to execute the binary.
+The private data blobs will be generated in the sklrt286 folder.
diff --git a/src/conf/topology/sklrt286/data/compile_local b/src/conf/topology/sklrt286/data/compile_local
new file mode 100755
index 000000000000..4b935f8b760d
--- /dev/null
+++ b/src/conf/topology/sklrt286/data/compile_local
@@ -0,0 +1,16 @@
+#Helper script to compile
+touch ltconfig NEWS README AUTHORS ChangeLog
+libtoolize --force --copy --automake
+aclocal $ACLOCAL_FLAGS
+autoheader
+automake --foreign --copy --add-missing
+touch depcomp		# seems to be missing for old automake
+autoconf
+export CFLAGS='-O2 -Wall -W -pipe -g'
+echo "CFLAGS=$CFLAGS"
+echo "./configure $args"
+./configure $args || exit 1
+unset CFLAGS
+if [ -z "$GITCOMPILE_NO_MAKE" ]; then
+  make
+fi
diff --git a/src/conf/topology/sklrt286/data/configure.ac b/src/conf/topology/sklrt286/data/configure.ac
new file mode 100644
index 000000000000..72c9021edeaf
--- /dev/null
+++ b/src/conf/topology/sklrt286/data/configure.ac
@@ -0,0 +1,30 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
+AC_INIT(pvt_data, [VERSION], [BUG-REPORT-ADDRESS])
+AM_INIT_AUTOMAKE(pvt_data, 2.6)
+AC_CONFIG_SRCDIR([pvt_data.c])
+AC_CONFIG_HEADERS([])
+
+# Checks for programs.
+AC_PROG_CC
+
+# Checks for libraries.
+
+# Checks for header files.
+AC_CHECK_HEADERS([limits.h stdint.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_TYPE_INT16_T
+AC_TYPE_INT32_T
+AC_TYPE_INT8_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT8_T
+
+# Checks for library functions.
+AC_CHECK_FUNCS([memset strchr])
+AC_CONFIG_FILES([Makefile])
+
+AC_OUTPUT
diff --git a/src/conf/topology/sklrt286/data/pvt.c b/src/conf/topology/sklrt286/data/pvt.c
new file mode 100644
index 000000000000..1f18eec5ec1a
--- /dev/null
+++ b/src/conf/topology/sklrt286/data/pvt.c
@@ -0,0 +1,1815 @@
+/*
+ * Copyright(c) 2014-2016 Intel Corporation
+ * All rights reserved.
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ * Authors: Shreyas Nc <shreyas.nc@intel.com>
+ *
+ */
+#include "pvt_data_local.h"
+
+struct skl_dfw_module_mod dfw_wrap[] = {
+{
+.name = "media0_in cpr 0",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 0,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 1,
+	.dev_type = 5,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 1,
+		.pipe_priority = 0,
+		.conn_type = 1,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "media0_in mi",
+.skl_dfw_mod = {
+	.uuid = "39656EB2-3B71-4049-8D3F-F92CD5C43C09",
+	.module_id = 1,
+	.instance_id = 0,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 1,
+	.max_out_queue = 1,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 0,
+	.conn_type = 0,
+	.dev_type = 6,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 1,
+		.pipe_priority = 0,
+		.conn_type = 1,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "media0_out mo",
+.skl_dfw_mod = {
+	.uuid = "3C56505A-24D7-418F-BDDC-C1F5A3AC2AE0",
+	.module_id = 2,
+	.instance_id = 2,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 8,
+	.max_out_queue = 1,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 0,
+	.conn_type = 0,
+	.dev_type = 6,
+	.hw_conn_type = 2,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 2,
+		.pipe_priority = 0,
+		.conn_type = 1,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "media0_out cpr 6",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 6,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 0,
+	.dev_type = 5,
+	.hw_conn_type = 2,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 2,
+		.pipe_priority = 0,
+		.conn_type = 1,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "codec0_out mo",
+.skl_dfw_mod = {
+	.uuid = "3C56505A-24D7-418F-BDDC-C1F5A3AC2AE0",
+	.module_id = 2,
+	.instance_id = 0,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 8,
+	.max_out_queue = 1,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 0,
+	.conn_type = 0,
+	.dev_type = 6,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 3,
+		.pipe_priority = 0,
+		.conn_type = 2,
+		.rsvd = 0,
+		.memory_pages = 0x4,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "codec0_out cpr 4",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 4,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = 0,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 2,
+	.dev_type = 2,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 3,
+		.pipe_priority = 0,
+		.conn_type = 2,
+		.rsvd = 0,
+		.memory_pages = 0x4,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "codec1_out mo",
+.skl_dfw_mod = {
+	.uuid = "3C56505A-24D7-418F-BDDC-C1F5A3AC2AE0",
+	.module_id = 2,
+	.instance_id = 1,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 8,
+	.max_out_queue = 1,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 0,
+	.conn_type = 0,
+	.dev_type = 6,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 4,
+		.pipe_priority = 0,
+		.conn_type = 2,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "codec1_out cpr 5",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 5,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = 0,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 2,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 2,
+	.dev_type = 2,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 4,
+		.pipe_priority = 0,
+		.conn_type = 2,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "codec0_in cpr 1",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 1,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = 0,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 2,
+	.dev_type = 2,
+	.hw_conn_type = 2,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 5,
+		.pipe_priority = 0,
+		.conn_type = 2,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "codec0_in mi",
+.skl_dfw_mod = {
+	.uuid = "39656EB2-3B71-4049-8D3F-F92CD5C43C09",
+	.module_id = 1,
+	.instance_id = 1,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 1,
+	.max_out_queue = 1,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 0,
+	.conn_type = 0,
+	.dev_type = 6,
+	.hw_conn_type = 2,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 5,
+		.pipe_priority = 0,
+		.conn_type = 2,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "dmic01_hifi_in cpr 3",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 3,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = 0,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 2,
+	.dev_type = 1,
+	.hw_conn_type = 2,
+	.rsvd2 = 0,
+	.params_fixup = 4,
+	.converter = 4,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 6,
+		.pipe_priority = 0,
+		.conn_type = 2,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "dmic01_hifi_in mi",
+.skl_dfw_mod = {
+	.uuid = "39656EB2-3B71-4049-8D3F-F92CD5C43C09",
+	.module_id = 1,
+	.instance_id = 3,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 1,
+	.max_out_queue = 1,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 0,
+	.conn_type = 0,
+	.dev_type = 6,
+	.hw_conn_type = 2,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 6,
+		.pipe_priority = 0,
+		.conn_type = 2,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "hdmi1_pt_out cpr 7",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 7,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 1,
+	.dev_type = 5,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 7,
+		.pipe_priority = 0,
+		.conn_type = 1,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "hdmi1_pt_out cpr 8",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 8,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 1,
+	.dev_type = 4,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 7,
+		.pipe_priority = 0,
+		.conn_type = 1,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "hdmi2_pt_out cpr 9",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 9,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 1,
+	.dev_type = 5,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 8,
+		.pipe_priority = 0,
+		.conn_type = 1,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "hdmi2_pt_out cpr 10",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 10,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 1,
+	.dev_type = 4,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 8,
+		.pipe_priority = 0,
+		.conn_type = 1,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "hdmi3_pt_out cpr 11",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 11,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 1,
+	.dev_type = 5,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 9,
+		.pipe_priority = 0,
+		.conn_type = 1,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 32,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+{
+.name = "hdmi3_pt_out cpr 12",
+.skl_dfw_mod = {
+	.uuid = "9BA00C83-CA12-4A83-943C-1FA2E82F9DDA",
+	.module_id = 3,
+	.instance_id = 12,
+	.max_mcps = 0x186a0,
+	.mem_pages = 0x1,
+	.obs = 384,
+	.ibs = 384,
+	.vbus_id = -1,
+	.max_in_queue = 1,
+	.max_out_queue = 2,
+	.time_slot = 0,
+	.core_id = 0,
+	.rsvd1 = 0,
+	.module_type = 1,
+	.conn_type = 1,
+	.dev_type = 4,
+	.hw_conn_type = 1,
+	.rsvd2 = 0,
+	.params_fixup = 0,
+	.converter = 0,
+	.input_pin_type = 0,
+	.output_pin_type = 0,
+	.is_dynamic_in_pin = 1,
+	.is_dynamic_out_pin = 1,
+	.is_loadable = 0,
+	.rsvd3 = 0,
+	.pipe = {
+		.pipe_id = 9,
+		.pipe_priority = 0,
+		.conn_type = 1,
+		.rsvd = 0,
+		.memory_pages = 0x2,
+	},
+	.in_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.out_fmt = {
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+		{
+			.channels = 2,
+			.freq = 48000,
+			.bit_depth = 32,
+			.valid_bit_depth = 24,
+			.ch_cfg = 1,
+			.interleaving_style = 0,
+			.sample_type = 0,
+			.ch_map = 0xffffff10,
+		},
+	},
+	.in_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	.out_pin = {
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+		{
+			.module_id = 0,
+			.instance_id = 0,
+		},
+	},
+	},
+},
+	};
diff --git a/src/conf/topology/sklrt286/data/pvt_data.c b/src/conf/topology/sklrt286/data/pvt_data.c
new file mode 100644
index 000000000000..cb6fc6ecd01e
--- /dev/null
+++ b/src/conf/topology/sklrt286/data/pvt_data.c
@@ -0,0 +1,90 @@
+/*
+ * Copyright(c) 2014-2016 Intel Corporation
+ * All rights reserved.
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ * Authors: Shreyas Nc <shreyas.nc@intel.com>
+ *
+ */
+#include "pvt.c"
+#include "stdio.h"
+#include "fcntl.h"
+#include <limits.h>
+#include <stdint.h>
+#include <linux/types.h>
+#include "global.h"
+#include "local.h"
+#include "list.h"
+
+#include <sound/asound.h>
+#include <sound/asoc.h>
+
+int replace_space(char *path, char *newpath)
+{
+	char buffer[52];
+	char *p;
+
+	strcpy(buffer, path);
+
+	while ((p = strchr(buffer, ' ')))
+		p[0] = '-';
+
+	strcpy(newpath, buffer);
+	return 0;
+}
+
+/*
+ * The private data structures are written into a
+ * binary blob. These contain module private data
+ * information
+ */
+int main()
+{
+	unsigned int i;
+	FILE  *fd;
+	char path[128];
+	char new_path[128];
+	struct snd_soc_tplg_private *priv = NULL;
+
+	memset(path, 0, sizeof(path));
+	memset(new_path, 0, sizeof(new_path));
+
+	priv = calloc(1, sizeof(dfw_wrap) + sizeof(uint32_t));
+
+	for (i = 0; i < ARRAY_SIZE(dfw_wrap); i++) {
+		strcat(path, "../");
+		strcat(path, dfw_wrap[i].name);
+		strcat(path, ".bin");
+
+		replace_space(path, new_path);
+
+		priv->size = (uint32_t)sizeof(dfw_wrap[i].skl_dfw_mod);
+
+		memcpy(priv->data, &dfw_wrap[i].skl_dfw_mod,
+				priv->size);
+
+		fd = fopen(new_path, "wb");
+
+		if (fd == NULL)
+			return -ENOENT;
+
+		if (fwrite(priv->data, priv->size, 1, fd) != 1) {
+			fclose(fd);
+			return -1;
+		}
+
+		memset(path, 0, sizeof(path));
+	}
+
+	free(priv);
+	return 0;
+}
diff --git a/src/conf/topology/sklrt286/data/pvt_data_local.h b/src/conf/topology/sklrt286/data/pvt_data_local.h
new file mode 100644
index 000000000000..72be7093bf9b
--- /dev/null
+++ b/src/conf/topology/sklrt286/data/pvt_data_local.h
@@ -0,0 +1,115 @@
+/*
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ */
+
+#ifndef __HDA_TPLG_INTERFACE_H__
+#define __HDA_TPLG_INTERFACE_H__
+
+#include <stdint.h>
+
+#ifndef __packed
+#define __packed __attribute__((packed))
+#endif
+
+#define SOC_CONTROL_TYPE_SKL_TLV_BYTE		0x100
+
+#define HDA_SST_CFG_MAX	900 /* max size of module init params */
+#define MAX_IN_QUEUE 8
+#define MAX_OUT_QUEUE 8
+
+#define SKL_UUID_STR_SZ 40
+
+struct skl_dfw_module_pin {
+	uint16_t module_id;
+	uint16_t instance_id;
+} __packed;
+
+struct skl_dfw_module_fmt {
+	uint32_t channels;
+	uint32_t freq;
+	uint32_t bit_depth;
+	uint32_t valid_bit_depth;
+	uint32_t ch_cfg;
+	uint32_t interleaving_style;
+	uint32_t sample_type;
+	uint32_t ch_map;
+} __packed;
+
+struct skl_dfw_module_caps {
+	uint32_t set_params:2;
+	uint32_t rsvd:30;
+	uint32_t param_id;
+	uint32_t caps_size;
+	uint32_t caps[HDA_SST_CFG_MAX];
+};
+
+struct skl_dfw_pipe {
+	uint8_t pipe_id;
+	uint8_t pipe_priority;
+	uint16_t conn_type:4;
+	uint16_t rsvd:4;
+	uint16_t memory_pages:8;
+} __packed;
+
+struct skl_dfw_module {
+	char uuid[SKL_UUID_STR_SZ];
+
+	uint16_t module_id;
+	uint16_t instance_id;
+	uint32_t max_mcps;
+	uint32_t mem_pages;
+	uint32_t obs;
+	uint32_t ibs;
+	uint32_t vbus_id;
+
+	uint32_t max_in_queue:8;
+	uint32_t max_out_queue:8;
+	uint32_t time_slot:8;
+	uint32_t core_id:4;
+	uint32_t rsvd1:4;
+
+	uint32_t module_type:8;
+	uint32_t conn_type:4;
+	uint32_t dev_type:4;
+	uint32_t hw_conn_type:4;
+	uint32_t rsvd2:12;
+
+	uint32_t params_fixup:8;
+	uint32_t converter:8;
+	uint32_t input_pin_type:1;
+	uint32_t output_pin_type:1;
+	uint32_t is_dynamic_in_pin:1;
+	uint32_t is_dynamic_out_pin:1;
+	uint32_t is_loadable:1;
+	uint32_t rsvd3:11;
+
+	struct skl_dfw_pipe pipe;
+	struct skl_dfw_module_fmt in_fmt[MAX_IN_QUEUE];
+	struct skl_dfw_module_fmt out_fmt[MAX_OUT_QUEUE];
+	struct skl_dfw_module_pin in_pin[MAX_IN_QUEUE];
+	struct skl_dfw_module_pin out_pin[MAX_OUT_QUEUE];
+	struct skl_dfw_module_caps caps;
+} __packed;
+
+struct skl_dfw_algo_data {
+	uint32_t set_params:2;
+	uint32_t runtime_applicable:1;
+	uint32_t rsvd:29;
+	uint32_t param_id;
+	uint32_t max;
+	char params[0];
+} __packed;
+
+struct skl_dfw_module_mod {
+	char name[100];
+	struct skl_dfw_module skl_dfw_mod;
+};
+#endif
-- 
2.4.11

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/2] conf: topology: Generate Private data binary blobs
  2016-04-05  5:20 ` [PATCH v2 2/2] conf: topology: Generate Private data binary blobs Vinod Koul
@ 2016-04-05 12:00   ` Takashi Iwai
  2016-04-05 14:38     ` Koul, Vinod
  0 siblings, 1 reply; 12+ messages in thread
From: Takashi Iwai @ 2016-04-05 12:00 UTC (permalink / raw)
  To: Vinod Koul
  Cc: liam.r.girdwood, patches.audio, alsa-devel, broonie, Shreyas NC

On Tue, 05 Apr 2016 07:20:05 +0200,
Vinod Koul wrote:
> 
> From: Shreyas NC <shreyas.nc@intel.com>
> 
> The DSP modules need private data and that is provided as binary
> blob. These blobs are compiled from C structures which specify module
> configuration.
> 
> Signed-off-by: Shreyas NC <shreyas.nc@intel.com>
> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> ---
>  src/conf/topology/sklrt286/data/Makefile.am      |    4 +
>  src/conf/topology/sklrt286/data/README           |    2 +
>  src/conf/topology/sklrt286/data/compile_local    |   16 +
>  src/conf/topology/sklrt286/data/configure.ac     |   30 +
>  src/conf/topology/sklrt286/data/pvt.c            | 1815 ++++++++++++++++++++++
>  src/conf/topology/sklrt286/data/pvt_data.c       |   90 ++
>  src/conf/topology/sklrt286/data/pvt_data_local.h |  115 ++
>  7 files changed, 2072 insertions(+)
>  create mode 100644 src/conf/topology/sklrt286/data/Makefile.am
>  create mode 100644 src/conf/topology/sklrt286/data/README
>  create mode 100755 src/conf/topology/sklrt286/data/compile_local
>  create mode 100644 src/conf/topology/sklrt286/data/configure.ac
>  create mode 100644 src/conf/topology/sklrt286/data/pvt.c
>  create mode 100644 src/conf/topology/sklrt286/data/pvt_data.c
>  create mode 100644 src/conf/topology/sklrt286/data/pvt_data_local.h
> 
> diff --git a/src/conf/topology/sklrt286/data/Makefile.am b/src/conf/topology/sklrt286/data/Makefile.am
> new file mode 100644
> index 000000000000..9898b9808055
> --- /dev/null
> +++ b/src/conf/topology/sklrt286/data/Makefile.am
> @@ -0,0 +1,4 @@
> +bin_PROGRAMS = pvt_data
> +pvt_data_SOURCES = pvt_data.c
> +AM_CPPFLAGS = \
> +         -Wall -I../../../../../include

What is this path?


> diff --git a/src/conf/topology/sklrt286/data/README b/src/conf/topology/sklrt286/data/README
> new file mode 100644
> index 000000000000..7d1261069dae
> --- /dev/null
> +++ b/src/conf/topology/sklrt286/data/README
> @@ -0,0 +1,2 @@
> +To compile the src file, run ./compile_local and then ./pvt_data to execute the binary.
> +The private data blobs will be generated in the sklrt286 folder.
> diff --git a/src/conf/topology/sklrt286/data/compile_local b/src/conf/topology/sklrt286/data/compile_local
> new file mode 100755
> index 000000000000..4b935f8b760d
> --- /dev/null
> +++ b/src/conf/topology/sklrt286/data/compile_local
> @@ -0,0 +1,16 @@
> +#Helper script to compile
> +touch ltconfig NEWS README AUTHORS ChangeLog
> +libtoolize --force --copy --automake
> +aclocal $ACLOCAL_FLAGS
> +autoheader
> +automake --foreign --copy --add-missing
> +touch depcomp		# seems to be missing for old automake
> +autoconf
> +export CFLAGS='-O2 -Wall -W -pipe -g'
> +echo "CFLAGS=$CFLAGS"
> +echo "./configure $args"
> +./configure $args || exit 1
> +unset CFLAGS
> +if [ -z "$GITCOMPILE_NO_MAKE" ]; then
> +  make
> +fi
> diff --git a/src/conf/topology/sklrt286/data/configure.ac b/src/conf/topology/sklrt286/data/configure.ac
> new file mode 100644
> index 000000000000..72c9021edeaf
> --- /dev/null
> +++ b/src/conf/topology/sklrt286/data/configure.ac
> @@ -0,0 +1,30 @@
> +#                                               -*- Autoconf -*-
> +# Process this file with autoconf to produce a configure script.
> +
> +AC_PREREQ([2.69])
> +AC_INIT(pvt_data, [VERSION], [BUG-REPORT-ADDRESS])
> +AM_INIT_AUTOMAKE(pvt_data, 2.6)
> +AC_CONFIG_SRCDIR([pvt_data.c])
> +AC_CONFIG_HEADERS([])
> +
> +# Checks for programs.
> +AC_PROG_CC
> +
> +# Checks for libraries.
> +
> +# Checks for header files.
> +AC_CHECK_HEADERS([limits.h stdint.h])
> +
> +# Checks for typedefs, structures, and compiler characteristics.
> +AC_TYPE_INT16_T
> +AC_TYPE_INT32_T
> +AC_TYPE_INT8_T
> +AC_TYPE_UINT16_T
> +AC_TYPE_UINT32_T
> +AC_TYPE_UINT8_T
> +
> +# Checks for library functions.
> +AC_CHECK_FUNCS([memset strchr])
> +AC_CONFIG_FILES([Makefile])
> +
> +AC_OUTPUT

There is no special dependency here, so we can just add
src/conf/toplogty/*/data/Makefile.am in the toplevel configure.ac?


thanks,

Takashi

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/2] conf: topology: Generate Private data binary blobs
  2016-04-05 12:00   ` Takashi Iwai
@ 2016-04-05 14:38     ` Koul, Vinod
  2016-04-05 14:45       ` Takashi Iwai
  0 siblings, 1 reply; 12+ messages in thread
From: Koul, Vinod @ 2016-04-05 14:38 UTC (permalink / raw)
  To: tiwai@suse.de
  Cc: liam.r.girdwood@linux.intel.com, Patches Audio,
	alsa-devel@alsa-project.org, broonie@kernel.org, Nc, Shreyas

On Tue, 2016-04-05 at 14:00 +0200, Takashi Iwai wrote:
> On Tue, 05 Apr 2016 07:20:05 +0200,
> Vinod Koul wrote:
> > 
> > From: Shreyas NC <shreyas.nc@intel.com>
> > 
> > The DSP modules need private data and that is provided as binary
> > blob. These blobs are compiled from C structures which specify
> > module
> > configuration.
> > 
> > Signed-off-by: Shreyas NC <shreyas.nc@intel.com>
> > Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> > ---
> >  src/conf/topology/sklrt286/data/Makefile.am      |    4 +
> >  src/conf/topology/sklrt286/data/README           |    2 +
> >  src/conf/topology/sklrt286/data/compile_local    |   16 +
> >  src/conf/topology/sklrt286/data/configure.ac     |   30 +
> >  src/conf/topology/sklrt286/data/pvt.c            | 1815
> > ++++++++++++++++++++++
> >  src/conf/topology/sklrt286/data/pvt_data.c       |   90 ++
> >  src/conf/topology/sklrt286/data/pvt_data_local.h |  115 ++
> >  7 files changed, 2072 insertions(+)
> >  create mode 100644 src/conf/topology/sklrt286/data/Makefile.am
> >  create mode 100644 src/conf/topology/sklrt286/data/README
> >  create mode 100755 src/conf/topology/sklrt286/data/compile_local
> >  create mode 100644 src/conf/topology/sklrt286/data/configure.ac
> >  create mode 100644 src/conf/topology/sklrt286/data/pvt.c
> >  create mode 100644 src/conf/topology/sklrt286/data/pvt_data.c
> >  create mode 100644 src/conf/topology/sklrt286/data/pvt_data_local.h
> > 
> > diff --git a/src/conf/topology/sklrt286/data/Makefile.am
> > b/src/conf/topology/sklrt286/data/Makefile.am
> > new file mode 100644
> > index 000000000000..9898b9808055
> > --- /dev/null
> > +++ b/src/conf/topology/sklrt286/data/Makefile.am
> > @@ -0,0 +1,4 @@
> > +bin_PROGRAMS = pvt_data
> > +pvt_data_SOURCES = pvt_data.c
> > +AM_CPPFLAGS = \
> > +         -Wall -I../../../../../include
> 
> What is this path?
> 
> 
> > diff --git a/src/conf/topology/sklrt286/data/README
> > b/src/conf/topology/sklrt286/data/README
> > new file mode 100644
> > index 000000000000..7d1261069dae
> > --- /dev/null
> > +++ b/src/conf/topology/sklrt286/data/README
> > @@ -0,0 +1,2 @@
> > +To compile the src file, run ./compile_local and then ./pvt_data to
> > execute the binary.
> > +The private data blobs will be generated in the sklrt286 folder.
> > diff --git a/src/conf/topology/sklrt286/data/compile_local
> > b/src/conf/topology/sklrt286/data/compile_local
> > new file mode 100755
> > index 000000000000..4b935f8b760d
> > --- /dev/null
> > +++ b/src/conf/topology/sklrt286/data/compile_local
> > @@ -0,0 +1,16 @@
> > +#Helper script to compile
> > +touch ltconfig NEWS README AUTHORS ChangeLog
> > +libtoolize --force --copy --automake
> > +aclocal $ACLOCAL_FLAGS
> > +autoheader
> > +automake --foreign --copy --add-missing
> > +touch depcomp		# seems to be missing for old automake
> > +autoconf
> > +export CFLAGS='-O2 -Wall -W -pipe -g'
> > +echo "CFLAGS=$CFLAGS"
> > +echo "./configure $args"
> > +./configure $args || exit 1
> > +unset CFLAGS
> > +if [ -z "$GITCOMPILE_NO_MAKE" ]; then
> > +  make
> > +fi
> > diff --git a/src/conf/topology/sklrt286/data/configure.ac
> > b/src/conf/topology/sklrt286/data/configure.ac
> > new file mode 100644
> > index 000000000000..72c9021edeaf
> > --- /dev/null
> > +++ b/src/conf/topology/sklrt286/data/configure.ac
> > @@ -0,0 +1,30 @@
> > +#                                               -*- Autoconf -*-
> > +# Process this file with autoconf to produce a configure script.
> > +
> > +AC_PREREQ([2.69])
> > +AC_INIT(pvt_data, [VERSION], [BUG-REPORT-ADDRESS])
> > +AM_INIT_AUTOMAKE(pvt_data, 2.6)
> > +AC_CONFIG_SRCDIR([pvt_data.c])
> > +AC_CONFIG_HEADERS([])
> > +
> > +# Checks for programs.
> > +AC_PROG_CC
> > +
> > +# Checks for libraries.
> > +
> > +# Checks for header files.
> > +AC_CHECK_HEADERS([limits.h stdint.h])
> > +
> > +# Checks for typedefs, structures, and compiler characteristics.
> > +AC_TYPE_INT16_T
> > +AC_TYPE_INT32_T
> > +AC_TYPE_INT8_T
> > +AC_TYPE_UINT16_T
> > +AC_TYPE_UINT32_T
> > +AC_TYPE_UINT8_T
> > +
> > +# Checks for library functions.
> > +AC_CHECK_FUNCS([memset strchr])
> > +AC_CONFIG_FILES([Makefile])
> > +
> > +AC_OUTPUT
> 
> There is no special dependency here, so we can just add
> src/conf/toplogty/*/data/Makefile.am in the toplevel configure.ac?

Yes that seems better. Also please note if we do that alsa-lib can
compile the data before it compiles skl topology so we can get rid of
bnary blobs whcih are prebuilt and get them generated on alsa-lib
compile.

This will solve above header patch and will use std path in lib

Is that okay with you?

-- 
~Vinod

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/2] conf: topology: Generate Private data binary blobs
  2016-04-05 14:38     ` Koul, Vinod
@ 2016-04-05 14:45       ` Takashi Iwai
  2016-04-05 15:52         ` Koul, Vinod
  0 siblings, 1 reply; 12+ messages in thread
From: Takashi Iwai @ 2016-04-05 14:45 UTC (permalink / raw)
  To: Koul, Vinod
  Cc: liam.r.girdwood@linux.intel.com, Patches Audio,
	alsa-devel@alsa-project.org, broonie@kernel.org, Nc, Shreyas

On Tue, 05 Apr 2016 16:38:49 +0200,
Koul, Vinod wrote:
> 
> On Tue, 2016-04-05 at 14:00 +0200, Takashi Iwai wrote:
> > On Tue, 05 Apr 2016 07:20:05 +0200,
> > Vinod Koul wrote:
> > > 
> > > From: Shreyas NC <shreyas.nc@intel.com>
> > > 
> > > The DSP modules need private data and that is provided as binary
> > > blob. These blobs are compiled from C structures which specify
> > > module
> > > configuration.
> > > 
> > > Signed-off-by: Shreyas NC <shreyas.nc@intel.com>
> > > Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> > > ---
> > >  src/conf/topology/sklrt286/data/Makefile.am      |    4 +
> > >  src/conf/topology/sklrt286/data/README           |    2 +
> > >  src/conf/topology/sklrt286/data/compile_local    |   16 +
> > >  src/conf/topology/sklrt286/data/configure.ac     |   30 +
> > >  src/conf/topology/sklrt286/data/pvt.c            | 1815
> > > ++++++++++++++++++++++
> > >  src/conf/topology/sklrt286/data/pvt_data.c       |   90 ++
> > >  src/conf/topology/sklrt286/data/pvt_data_local.h |  115 ++
> > >  7 files changed, 2072 insertions(+)
> > >  create mode 100644 src/conf/topology/sklrt286/data/Makefile.am
> > >  create mode 100644 src/conf/topology/sklrt286/data/README
> > >  create mode 100755 src/conf/topology/sklrt286/data/compile_local
> > >  create mode 100644 src/conf/topology/sklrt286/data/configure.ac
> > >  create mode 100644 src/conf/topology/sklrt286/data/pvt.c
> > >  create mode 100644 src/conf/topology/sklrt286/data/pvt_data.c
> > >  create mode 100644 src/conf/topology/sklrt286/data/pvt_data_local.h
> > > 
> > > diff --git a/src/conf/topology/sklrt286/data/Makefile.am
> > > b/src/conf/topology/sklrt286/data/Makefile.am
> > > new file mode 100644
> > > index 000000000000..9898b9808055
> > > --- /dev/null
> > > +++ b/src/conf/topology/sklrt286/data/Makefile.am
> > > @@ -0,0 +1,4 @@
> > > +bin_PROGRAMS = pvt_data
> > > +pvt_data_SOURCES = pvt_data.c
> > > +AM_CPPFLAGS = \
> > > +         -Wall -I../../../../../include
> > 
> > What is this path?
> > 
> > 
> > > diff --git a/src/conf/topology/sklrt286/data/README
> > > b/src/conf/topology/sklrt286/data/README
> > > new file mode 100644
> > > index 000000000000..7d1261069dae
> > > --- /dev/null
> > > +++ b/src/conf/topology/sklrt286/data/README
> > > @@ -0,0 +1,2 @@
> > > +To compile the src file, run ./compile_local and then ./pvt_data to
> > > execute the binary.
> > > +The private data blobs will be generated in the sklrt286 folder.
> > > diff --git a/src/conf/topology/sklrt286/data/compile_local
> > > b/src/conf/topology/sklrt286/data/compile_local
> > > new file mode 100755
> > > index 000000000000..4b935f8b760d
> > > --- /dev/null
> > > +++ b/src/conf/topology/sklrt286/data/compile_local
> > > @@ -0,0 +1,16 @@
> > > +#Helper script to compile
> > > +touch ltconfig NEWS README AUTHORS ChangeLog
> > > +libtoolize --force --copy --automake
> > > +aclocal $ACLOCAL_FLAGS
> > > +autoheader
> > > +automake --foreign --copy --add-missing
> > > +touch depcomp		# seems to be missing for old automake
> > > +autoconf
> > > +export CFLAGS='-O2 -Wall -W -pipe -g'
> > > +echo "CFLAGS=$CFLAGS"
> > > +echo "./configure $args"
> > > +./configure $args || exit 1
> > > +unset CFLAGS
> > > +if [ -z "$GITCOMPILE_NO_MAKE" ]; then
> > > +  make
> > > +fi
> > > diff --git a/src/conf/topology/sklrt286/data/configure.ac
> > > b/src/conf/topology/sklrt286/data/configure.ac
> > > new file mode 100644
> > > index 000000000000..72c9021edeaf
> > > --- /dev/null
> > > +++ b/src/conf/topology/sklrt286/data/configure.ac
> > > @@ -0,0 +1,30 @@
> > > +#                                               -*- Autoconf -*-
> > > +# Process this file with autoconf to produce a configure script.
> > > +
> > > +AC_PREREQ([2.69])
> > > +AC_INIT(pvt_data, [VERSION], [BUG-REPORT-ADDRESS])
> > > +AM_INIT_AUTOMAKE(pvt_data, 2.6)
> > > +AC_CONFIG_SRCDIR([pvt_data.c])
> > > +AC_CONFIG_HEADERS([])
> > > +
> > > +# Checks for programs.
> > > +AC_PROG_CC
> > > +
> > > +# Checks for libraries.
> > > +
> > > +# Checks for header files.
> > > +AC_CHECK_HEADERS([limits.h stdint.h])
> > > +
> > > +# Checks for typedefs, structures, and compiler characteristics.
> > > +AC_TYPE_INT16_T
> > > +AC_TYPE_INT32_T
> > > +AC_TYPE_INT8_T
> > > +AC_TYPE_UINT16_T
> > > +AC_TYPE_UINT32_T
> > > +AC_TYPE_UINT8_T
> > > +
> > > +# Checks for library functions.
> > > +AC_CHECK_FUNCS([memset strchr])
> > > +AC_CONFIG_FILES([Makefile])
> > > +
> > > +AC_OUTPUT
> > 
> > There is no special dependency here, so we can just add
> > src/conf/toplogty/*/data/Makefile.am in the toplevel configure.ac?
> 
> Yes that seems better. Also please note if we do that alsa-lib can
> compile the data before it compiles skl topology so we can get rid of
> bnary blobs whcih are prebuilt and get them generated on alsa-lib
> compile.

Yeah, that's nicer, too.

> This will solve above header patch and will use std path in lib
> 
> Is that okay with you?

Sure.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/2] conf: topology: Generate Private data binary blobs
  2016-04-05 14:45       ` Takashi Iwai
@ 2016-04-05 15:52         ` Koul, Vinod
  2016-04-05 16:05           ` Takashi Iwai
  0 siblings, 1 reply; 12+ messages in thread
From: Koul, Vinod @ 2016-04-05 15:52 UTC (permalink / raw)
  To: tiwai@suse.de
  Cc: liam.r.girdwood@linux.intel.com, Patches Audio,
	alsa-devel@alsa-project.org, broonie@kernel.org, Nc, Shreyas

On Tue, 2016-04-05 at 16:45 +0200, Takashi Iwai wrote:
> > There is no special dependency here, so we can just add
> > > src/conf/toplogty/*/data/Makefile.am in the toplevel configure.ac?
> > 
> > Yes that seems better. Also please note if we do that alsa-lib can
> > compile the data before it compiles skl topology so we can get rid
> > of
> > bnary blobs whcih are prebuilt and get them generated on alsa-lib
> > compile.
> 
> Yeah, that's nicer, too.

One thing though we need to run the binary to generate blobs, am
thinking of hooking that up with install step.

> 
> > This will solve above header patch and will use std path in lib
> > 
> > Is that okay with you?
> 
> Sure.
> 
> 
> thanks,
> 
> Takashi

-- 
~Vinod

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/2] conf: topology: Generate Private data binary blobs
  2016-04-05 15:52         ` Koul, Vinod
@ 2016-04-05 16:05           ` Takashi Iwai
  2016-04-05 16:08             ` Koul, Vinod
  0 siblings, 1 reply; 12+ messages in thread
From: Takashi Iwai @ 2016-04-05 16:05 UTC (permalink / raw)
  To: Koul, Vinod
  Cc: liam.r.girdwood@linux.intel.com, Patches Audio,
	alsa-devel@alsa-project.org, broonie@kernel.org, Nc, Shreyas

On Tue, 05 Apr 2016 17:52:19 +0200,
Koul, Vinod wrote:
> 
> On Tue, 2016-04-05 at 16:45 +0200, Takashi Iwai wrote:
> > > There is no special dependency here, so we can just add
> > > > src/conf/toplogty/*/data/Makefile.am in the toplevel configure.ac?
> > > 
> > > Yes that seems better. Also please note if we do that alsa-lib can
> > > compile the data before it compiles skl topology so we can get rid
> > > of
> > > bnary blobs whcih are prebuilt and get them generated on alsa-lib
> > > compile.
> > 
> > Yeah, that's nicer, too.
> 
> One thing though we need to run the binary to generate blobs, am
> thinking of hooking that up with install step.

Compiling something at installation is wrong in general.


Takashi

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/2] conf: topology: Generate Private data binary blobs
  2016-04-05 16:05           ` Takashi Iwai
@ 2016-04-05 16:08             ` Koul, Vinod
  2016-04-05 20:10               ` Takashi Iwai
  0 siblings, 1 reply; 12+ messages in thread
From: Koul, Vinod @ 2016-04-05 16:08 UTC (permalink / raw)
  To: tiwai@suse.de
  Cc: liam.r.girdwood@linux.intel.com, Patches Audio,
	alsa-devel@alsa-project.org, broonie@kernel.org, Nc, Shreyas

On Tue, 2016-04-05 at 18:05 +0200, Takashi Iwai wrote:
> On Tue, 05 Apr 2016 17:52:19 +0200,
> Koul, Vinod wrote:
> > 
> > On Tue, 2016-04-05 at 16:45 +0200, Takashi Iwai wrote:
> > > > There is no special dependency here, so we can just add
> > > > > src/conf/toplogty/*/data/Makefile.am in the toplevel
> > > > > configure.ac?
> > > > 
> > > > Yes that seems better. Also please note if we do that alsa-lib
> > > > can
> > > > compile the data before it compiles skl topology so we can get
> > > > rid
> > > > of
> > > > bnary blobs whcih are prebuilt and get them generated on alsa
> > > > -lib
> > > > compile.
> > > 
> > > Yeah, that's nicer, too.
> > 
> > One thing though we need to run the binary to generate blobs, am
> > thinking of hooking that up with install step.
> 
> Compiling something at installation is wrong in general.

Nope that's not what I meant.

We will compile the tool and create the binary at alsa-lib compile step.

Then we need to run that to generate the binary blobs and that can be
done at install step


-- 
~Vinod

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/2] conf: topology: Generate Private data binary blobs
  2016-04-05 16:08             ` Koul, Vinod
@ 2016-04-05 20:10               ` Takashi Iwai
  2016-04-05 21:24                 ` Mark Brown
  0 siblings, 1 reply; 12+ messages in thread
From: Takashi Iwai @ 2016-04-05 20:10 UTC (permalink / raw)
  To: Koul, Vinod
  Cc: liam.r.girdwood@linux.intel.com, Patches Audio,
	alsa-devel@alsa-project.org, broonie@kernel.org, Nc, Shreyas

On Tue, 05 Apr 2016 18:08:55 +0200,
Koul, Vinod wrote:
> 
> On Tue, 2016-04-05 at 18:05 +0200, Takashi Iwai wrote:
> > On Tue, 05 Apr 2016 17:52:19 +0200,
> > Koul, Vinod wrote:
> > > 
> > > On Tue, 2016-04-05 at 16:45 +0200, Takashi Iwai wrote:
> > > > > There is no special dependency here, so we can just add
> > > > > > src/conf/toplogty/*/data/Makefile.am in the toplevel
> > > > > > configure.ac?
> > > > > 
> > > > > Yes that seems better. Also please note if we do that alsa-lib
> > > > > can
> > > > > compile the data before it compiles skl topology so we can get
> > > > > rid
> > > > > of
> > > > > bnary blobs whcih are prebuilt and get them generated on alsa
> > > > > -lib
> > > > > compile.
> > > > 
> > > > Yeah, that's nicer, too.
> > > 
> > > One thing though we need to run the binary to generate blobs, am
> > > thinking of hooking that up with install step.
> > 
> > Compiling something at installation is wrong in general.
> 
> Nope that's not what I meant.
> 
> We will compile the tool and create the binary at alsa-lib compile step.
> 
> Then we need to run that to generate the binary blobs and that can be
> done at install step

OK.  But now I noticed another pitfall.
The topology firmware is endian-sensitive, and the code to generate is
so, too.  Thus it can't work for big-endian architectures.

One solution would be to bundle the firmware binary and provide the
generator code as a supplement like the current version.

Another option would be to check the endianess in configure script and
limit the intel topology f/w only for little endian via
AM_CONDITIONAL().


Takashi

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/2] conf: topology: Generate Private data binary blobs
  2016-04-05 20:10               ` Takashi Iwai
@ 2016-04-05 21:24                 ` Mark Brown
  2016-04-06 13:03                   ` Koul, Vinod
  0 siblings, 1 reply; 12+ messages in thread
From: Mark Brown @ 2016-04-05 21:24 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Koul, Vinod, liam.r.girdwood@linux.intel.com,
	alsa-devel@alsa-project.org, Nc, Shreyas, Patches Audio


[-- Attachment #1.1: Type: text/plain, Size: 505 bytes --]

On Tue, Apr 05, 2016 at 10:10:48PM +0200, Takashi Iwai wrote:

> OK.  But now I noticed another pitfall.
> The topology firmware is endian-sensitive, and the code to generate is
> so, too.  Thus it can't work for big-endian architectures.

The firmware side of this needs to be fixed at the ABI level I think,
that's definitely an oversight - thanks for spotting it!  We have
platforms which can switch at boot time between big and little endian so
an unfixed endinanness is not going to be usable there.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/2] conf: topology: Generate Private data binary blobs
  2016-04-05 21:24                 ` Mark Brown
@ 2016-04-06 13:03                   ` Koul, Vinod
  0 siblings, 0 replies; 12+ messages in thread
From: Koul, Vinod @ 2016-04-06 13:03 UTC (permalink / raw)
  To: broonie@kernel.org, tiwai@suse.de
  Cc: liam.r.girdwood@linux.intel.com, Patches Audio,
	alsa-devel@alsa-project.org, Nc, Shreyas

On Tue, 2016-04-05 at 14:24 -0700, Mark Brown wrote:
> On Tue, Apr 05, 2016 at 10:10:48PM +0200, Takashi Iwai wrote:
> 
> > OK.  But now I noticed another pitfall.
> > The topology firmware is endian-sensitive, and the code to generate
> > is
> > so, too.  Thus it can't work for big-endian architectures.

This code is not intended to work on big-endian ones :). We will add
__lexx notations on these.

> The firmware side of this needs to be fixed at the ABI level I think,
> that's definitely an oversight - thanks for spotting it!  We have
> platforms which can switch at boot time between big and little endian 
> so an unfixed endinanness is not going to be usable there.

The topology ABI has been defined as little-endian. The driver needs to
do conversion to machine type and use data from topology.

-- 
~Vinod

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-04-06 13:04 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-05  5:20 [PATCH v2 0/2] conf: topology: Add the conf for SKL-rt286 Vinod Koul
2016-04-05  5:20 ` [PATCH v2 2/2] conf: topology: Generate Private data binary blobs Vinod Koul
2016-04-05 12:00   ` Takashi Iwai
2016-04-05 14:38     ` Koul, Vinod
2016-04-05 14:45       ` Takashi Iwai
2016-04-05 15:52         ` Koul, Vinod
2016-04-05 16:05           ` Takashi Iwai
2016-04-05 16:08             ` Koul, Vinod
2016-04-05 20:10               ` Takashi Iwai
2016-04-05 21:24                 ` Mark Brown
2016-04-06 13:03                   ` Koul, Vinod
  -- strict thread matches above, loose matches on Subject: below --
2016-04-05  5:04 [PATCH v2 0/2] conf: topology: Add the conf for SKL-rt286 Vinod Koul

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).