Message ID | 1493967122-13036-1-git-send-email-fuweix.tang@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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);