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

Takashi Iwai tiwai at suse.de
Fri May 5 09:25:07 CEST 2017


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.


Takashi


More information about the Alsa-devel mailing list