[alsa-devel] [PATCH] topology: Fix issue in parsing routes when generating topology binary

Tang, FuweiX fuweix.tang at intel.com
Fri May 5 09:35:08 CEST 2017


> -----Original Message-----
> From: Takashi Iwai [mailto:tiwai at suse.de]
> Sent: Friday, May 5, 2017 3:25 PM
> To: Tang, FuweiX <fuweix.tang at intel.com>
> Cc: alsa-devel at alsa-project.org; liam.r.girdwood at linux.intel.com; Lin,
> Mengdong <mengdong.lin at 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 at intel.com wrote:
> >
> > From: Fuwei Tang <fuweix.tang at 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 at intel.com>
> > Tested-by: Subhransu S. Prusty <subhransu.s.prusty at 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


More information about the Alsa-devel mailing list