From: mengdong.lin@linux.intel.com
To: alsa-devel@alsa-project.org
Cc: Mengdong Lin <mengdong.lin@linux.intel.com>,
tiwai@suse.de, hardik.t.shah@intel.com,
guneshwor.o.singh@intel.com, liam.r.girdwood@linux.intel.com,
vinod.koul@intel.com, broonie@kernel.org, mengdong.lin@intel.com
Subject: [PATCH 07/13] topology: Define new type and section name to configure physical links
Date: Sun, 6 Nov 2016 13:13:36 +0800 [thread overview]
Message-ID: <2f89586da5cd5c944d85b051ee2ad808e8aa6c90.1478407716.git.mengdong.lin@linux.intel.com> (raw)
In-Reply-To: <cover.1478407716.git.mengdong.lin@linux.intel.com>
From: Mengdong Lin <mengdong.lin@linux.intel.com>
Users may not use DPCM but still need to configure the physical links.
So we should not only consider backend links for DPCM.
- SND_TPLG_TYPE_LINK is defined to configure physical links by C API.
And SND_TPLG_TYPE_BE is still supported to configure Backend links for
DPCM cases.
- SectionLink can be used to configure physical links in text conf file.
And SectionBE is still supported to config Backend links for DPCM cases.
Actually, users can use SND_TPLG_TYPE_LINK and SectionLink to configure
backend links for DPCM cases, because BE links are also physical links.
The parsing is same and we rename the function from tplg_parse_be to
tplg_parse_link.
Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
diff --git a/include/topology.h b/include/topology.h
index dbd18b3..1fbaeb8 100644
--- a/include/topology.h
+++ b/include/topology.h
@@ -617,6 +617,24 @@ extern "C" {
* }
* </pre>
*
+ * <h4>Physical DAI Link Configurations</h4>
+ * The runtime configurations of a physical DAI link can be defined by
+ * SectionLink. <br> Backend DAI links belong to physical links, and can
+ * be configured by either SectionLink or SectionBE, with same syntax.
+ * But SectionBE is deprecated atm since the internal processing is
+ * actually same.
+ *
+ * <pre>
+ * SectionLink."name" {
+ *
+ * index "1" # Index number
+ *
+ * id "0" # used for binding to the link
+ *
+ * data "name" # optional private data
+ * }
+ * </pre>
+ *
* <h4>Manifest Private Data</h4>
* Manfiest may have private data. Users need to define a manifest section
* and add the references to 1 or multiple data sections. Please refer to
@@ -687,6 +705,7 @@ enum snd_tplg_type {
SND_TPLG_TYPE_MANIFEST, /*!< Topology manifest */
SND_TPLG_TYPE_TOKEN, /*!< Vendor tokens */
SND_TPLG_TYPE_TUPLE, /*!< Vendor tuples */
+ SND_TPLG_TYPE_LINK, /*!< Physical DAI link */
};
/**
diff --git a/src/topology/parser.c b/src/topology/parser.c
index ded2eb7..ed5da87 100644
--- a/src/topology/parser.c
+++ b/src/topology/parser.c
@@ -133,8 +133,9 @@ static int tplg_parse_config(snd_tplg_t *tplg, snd_config_t *cfg)
continue;
}
- if (strcmp(id, "SectionBE") == 0) {
- err = tplg_parse_compound(tplg, n, tplg_parse_be,
+ if (strcmp(id, "SectionLink") == 0
+ || strcmp(id, "SectionBE") == 0) {
+ err = tplg_parse_compound(tplg, n, tplg_parse_link,
NULL);
if (err < 0)
return err;
diff --git a/src/topology/pcm.c b/src/topology/pcm.c
index fe8af45..96a64e7 100644
--- a/src/topology/pcm.c
+++ b/src/topology/pcm.c
@@ -527,7 +527,8 @@ int tplg_parse_pcm(snd_tplg_t *tplg,
return 0;
}
-int tplg_parse_be(snd_tplg_t *tplg,
+/* Parse a physical link element in text conf file */
+int tplg_parse_link(snd_tplg_t *tplg,
snd_config_t *cfg, void *private ATTRIBUTE_UNUSED)
{
struct snd_soc_tplg_link_config *link;
@@ -544,7 +545,7 @@ int tplg_parse_be(snd_tplg_t *tplg,
link = elem->link;
link->size = elem->size;
- tplg_dbg(" BE: %s\n", elem->id);
+ tplg_dbg(" Link: %s\n", elem->id);
snd_config_for_each(i, next, cfg) {
@@ -748,7 +749,8 @@ int tplg_add_link_object(snd_tplg_t *tplg, snd_tplg_obj_template_t *t)
struct tplg_elem *elem;
int i;
- if (t->type != SND_TPLG_TYPE_BE && t->type != SND_TPLG_TYPE_CC)
+ if (t->type != SND_TPLG_TYPE_LINK && t->type != SND_TPLG_TYPE_BE
+ && t->type != SND_TPLG_TYPE_CC)
return -EINVAL;
/* here type can be either BE or CC. */
@@ -756,10 +758,7 @@ int tplg_add_link_object(snd_tplg_t *tplg, snd_tplg_obj_template_t *t)
if (!elem)
return -ENOMEM;
- if (t->type == SND_TPLG_TYPE_BE)
- tplg_dbg("BE Link: %s", link_tpl->name);
- else
- tplg_dbg("CC Link: %s", link_tpl->name);
+ tplg_dbg("Link: %s", link_tpl->name);
link = elem->link;
link->size = elem->size;
diff --git a/src/topology/tplg_local.h b/src/topology/tplg_local.h
index 548f42d..947f27e 100644
--- a/src/topology/tplg_local.h
+++ b/src/topology/tplg_local.h
@@ -220,7 +220,7 @@ int tplg_parse_stream_caps(snd_tplg_t *tplg,
int tplg_parse_pcm(snd_tplg_t *tplg,
snd_config_t *cfg, void *private ATTRIBUTE_UNUSED);
-int tplg_parse_be(snd_tplg_t *tplg,
+int tplg_parse_link(snd_tplg_t *tplg,
snd_config_t *cfg, void *private ATTRIBUTE_UNUSED);
int tplg_parse_cc(snd_tplg_t *tplg,
--
2.7.4
next prev parent reply other threads:[~2016-11-06 5:12 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-06 5:10 [PATCH 00/13] topology: Update physical link support for ABI v5 mengdong.lin
2016-11-06 5:11 ` [PATCH 01/13] topology: Use snd_config_get_bool to simplify boolean flag parsing mengdong.lin
2016-11-06 5:11 ` [PATCH 02/13] topology: Merge an element's be & cc pointer to one link pointer mengdong.lin
2016-11-06 5:12 ` [PATCH 03/13] topology: Define a function to build a single physical DAI link mengdong.lin
2016-11-06 5:12 ` [PATCH 04/13] topology: ABI - Define DAI physical PCM data formats mengdong.lin
2016-11-06 5:13 ` [PATCH 05/13] topology: ABI - Update physical DAI link configurations to ABI v5 mengdong.lin
2016-11-06 5:13 ` [PATCH 06/13] topology: Rename varaibles for add physical links by C API mengdong.lin
2016-11-06 5:13 ` mengdong.lin [this message]
2016-11-06 5:13 ` [PATCH 08/13] topology: Parse HW configurations of physical DAI links defined " mengdong.lin
2016-11-06 5:14 ` [PATCH 09/13] topology: Parse HW configurations of physical DAI links in text conf file mengdong.lin
2016-11-06 5:14 ` [PATCH 10/13] topology: Parse link flags of physical DAI links mengdong.lin
2016-11-06 5:14 ` [PATCH 11/13] topology: Parse and build private data of physical links mengdong.lin
2016-11-06 5:14 ` [PATCH 12/13] topology: Parse name and stream name of physical DAI links mengdong.lin
2016-11-06 5:14 ` [PATCH 13/13] topology: Remove BE or CC in comments of physical links C API template mengdong.lin
2016-11-14 16:23 ` [PATCH 00/13] topology: Update physical link support for ABI v5 Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2f89586da5cd5c944d85b051ee2ad808e8aa6c90.1478407716.git.mengdong.lin@linux.intel.com \
--to=mengdong.lin@linux.intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=guneshwor.o.singh@intel.com \
--cc=hardik.t.shah@intel.com \
--cc=liam.r.girdwood@linux.intel.com \
--cc=mengdong.lin@intel.com \
--cc=tiwai@suse.de \
--cc=vinod.koul@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).