mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-06 13:29:59 -05:00
topology: Fix parsing config with multiple hw_configs
Currently, if the config file includes several hw_configs sections,
parse_hw_config_refs() returns after parsing only the first section.
For example, the following config, based on
alsa-lib/src/conf/topology/broadwell/broadwell.conf, is parsed incorrectly:
~~~~
SectionHWConfig."CodecHWConfig" {
id "1"
format "I2S" # physical audio format.
bclk "master" # Platform is master of bit clock
fsync "master" # platform is master of fsync
}
SectionHWConfig."CodecHWConfig2" {
id "2"
format "AC97"
}
SectionLink."Codec" {
# used for binding to the physical link
id "0"
hw_configs [
"CodecHWConfig"
"CodecHWConfig2"
]
default_hw_conf_id "2"
}
~~~~
Signed-off-by: Kirill Marinushkin <k.marinushkin@gmail.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: alsa-devel@alsa-project.org
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
07a17bd5a5
commit
64b8927df3
1 changed files with 4 additions and 1 deletions
|
|
@ -882,6 +882,7 @@ static int parse_hw_config_refs(snd_tplg_t *tplg, snd_config_t *cfg,
|
||||||
/* refer to a list of HW configs */
|
/* refer to a list of HW configs */
|
||||||
snd_config_for_each(i, next, cfg) {
|
snd_config_for_each(i, next, cfg) {
|
||||||
const char *val;
|
const char *val;
|
||||||
|
int err;
|
||||||
|
|
||||||
n = snd_config_iterator_entry(i);
|
n = snd_config_iterator_entry(i);
|
||||||
if (snd_config_get_string(n, &val) < 0)
|
if (snd_config_get_string(n, &val) < 0)
|
||||||
|
|
@ -893,7 +894,9 @@ static int parse_hw_config_refs(snd_tplg_t *tplg, snd_config_t *cfg,
|
||||||
}
|
}
|
||||||
|
|
||||||
link->num_hw_configs++;
|
link->num_hw_configs++;
|
||||||
return tplg_ref_add(elem, SND_TPLG_TYPE_HW_CONFIG, val);
|
err = tplg_ref_add(elem, SND_TPLG_TYPE_HW_CONFIG, val);
|
||||||
|
if (err < 0)
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue