[v2] topology: Fix issue in parsing routes when generating topology binary
diff mbox

Message ID 1493971040-15628-1-git-send-email-fuweix.tang@intel.com
State New
Headers show

Commit Message

fuweix.tang@intel.com May 5, 2017, 7:57 a.m. UTC
From: Fuwei Tang <fuweix.tang@intel.com>

We missed parsing the index value, which is used as a use case indicator, when
processing the route objects.

This patch fixes the bug.

Signed-off-by: Fuwei Tang <fuweix.tang@intel.com>
Tested-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
---
 src/topology/dapm.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

Comments

Takashi Iwai May 5, 2017, 8:09 a.m. UTC | #1
On Fri, 05 May 2017 09:57:20 +0200,
fuweix.tang@intel.com wrote:
> 
> From: Fuwei Tang <fuweix.tang@intel.com>
> 
> We missed parsing the index value, which is used as a use case indicator, when
> processing the route objects.
> 
> This patch fixes the bug.
> 
> Signed-off-by: Fuwei Tang <fuweix.tang@intel.com>
> Tested-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>

Applied, thanks.


Takashi

Patch
diff mbox

diff --git a/src/topology/dapm.c b/src/topology/dapm.c
index 13aa1c4..6af750b 100644
--- a/src/topology/dapm.c
+++ b/src/topology/dapm.c
@@ -381,7 +381,7 @@  done:
 }
 
 
-static int tplg_parse_routes(snd_tplg_t *tplg, snd_config_t *cfg)
+static int tplg_parse_routes(snd_tplg_t *tplg, snd_config_t *cfg, int index)
 {
 	snd_config_iterator_t i, next;
 	snd_config_t *n;
@@ -399,7 +399,7 @@  static int tplg_parse_routes(snd_tplg_t *tplg, snd_config_t *cfg)
 		elem = tplg_elem_new_route(tplg);
 		if (!elem)
 			return -ENOMEM;
-
+		elem->index = index;
 		line = elem->route;
 
 		err = tplg_parse_line(val, line);
@@ -419,7 +419,8 @@  int tplg_parse_dapm_graph(snd_tplg_t *tplg, snd_config_t *cfg,
 	snd_config_iterator_t i, next;
 	snd_config_t *n;
 	int err;
-	const char *graph_id;
+	const char *graph_id, *val = NULL;
+	int index;
 
 	if (snd_config_get_type(cfg) != SND_CONFIG_TYPE_COMPOUND) {
 		SNDERR("error: compound is expected for dapm graph definition\n");
@@ -436,8 +437,14 @@  int tplg_parse_dapm_graph(snd_tplg_t *tplg, snd_config_t *cfg,
 			continue;
 		}
 
+		if (strcmp(id, "index") == 0) {
+			if (snd_config_get_string(n, &val) < 0)
+				return -EINVAL;
+			index = atoi(val);
+		}
+
 		if (strcmp(id, "lines") == 0) {
-			err = tplg_parse_routes(tplg, n);
+			err = tplg_parse_routes(tplg, n, index);
 			if (err < 0) {
 				SNDERR("error: failed to parse dapm graph %s\n",
 					graph_id);