[alsa-devel] [PATCH] topology: Fix issue in parsing routes when generating topology binary
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(-)
diff --git a/src/topology/dapm.c b/src/topology/dapm.c index 13aa1c4..2fa387f 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 NULL; + 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);
On Fri, 05 May 2017 08:52:02 +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
src/topology/dapm.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/topology/dapm.c b/src/topology/dapm.c index 13aa1c4..2fa387f 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 NULL;
This function should return an error code.
Takashi
-----Original Message----- From: Takashi Iwai [mailto:tiwai@suse.de] Sent: Friday, May 5, 2017 3:25 PM To: Tang, FuweiX fuweix.tang@intel.com Cc: alsa-devel@alsa-project.org; liam.r.girdwood@linux.intel.com; Lin, Mengdong mengdong.lin@intel.com Subject: Re: [PATCH] topology: Fix issue in parsing routes when generating topology binary
On Fri, 05 May 2017 08:52:02 +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
src/topology/dapm.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/topology/dapm.c b/src/topology/dapm.c index 13aa1c4..2fa387f 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 NULL;
This function should return an error code.
I'm sorry about that, I will do so.
Thanks Fuwei
Takashi
participants (3)
-
fuweix.tangļ¼ intel.com
-
Takashi Iwai
-
Tang, FuweiX