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

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

Commit Message

fuweix.tang@intel.com May 5, 2017, 6:52 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, 7:25 a.m. UTC | #1
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
fuweix.tang@intel.com May 5, 2017, 7:35 a.m. UTC | #2
> -----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

Patch
diff mbox

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);