Lines Matching full:comp
127 int (*parse)(struct snd_soc_component *comp, void *elem, void *object, u32 offset);
131 avs_parse_uuid_token(struct snd_soc_component *comp, void *elem, void *object, u32 offset) in avs_parse_uuid_token() argument
142 avs_parse_bool_token(struct snd_soc_component *comp, void *elem, void *object, u32 offset) in avs_parse_bool_token() argument
153 avs_parse_byte_token(struct snd_soc_component *comp, void *elem, void *object, u32 offset) in avs_parse_byte_token() argument
164 avs_parse_short_token(struct snd_soc_component *comp, void *elem, void *object, u32 offset) in avs_parse_short_token() argument
175 avs_parse_word_token(struct snd_soc_component *comp, void *elem, void *object, u32 offset) in avs_parse_word_token() argument
186 avs_parse_string_token(struct snd_soc_component *comp, void *elem, void *object, u32 offset) in avs_parse_string_token() argument
196 static int avs_parse_uuid_tokens(struct snd_soc_component *comp, void *object, in avs_parse_uuid_tokens() argument
213 ret = parsers[j].parse(comp, tuple, object, parsers[j].offset); in avs_parse_uuid_tokens()
222 static int avs_parse_string_tokens(struct snd_soc_component *comp, void *object, in avs_parse_string_tokens() argument
239 ret = parsers[j].parse(comp, tuple, object, parsers[j].offset); in avs_parse_string_tokens()
248 static int avs_parse_word_tokens(struct snd_soc_component *comp, void *object, in avs_parse_word_tokens() argument
270 ret = parsers[j].parse(comp, tuple, object, parsers[j].offset); in avs_parse_word_tokens()
279 static int avs_parse_tokens(struct snd_soc_component *comp, void *object, in avs_parse_tokens() argument
289 dev_err(comp->dev, "invalid array size 0x%x\n", array_size); in avs_parse_tokens()
296 dev_err(comp->dev, "invalid array size 0x%x\n", array_size); in avs_parse_tokens()
302 ret = avs_parse_uuid_tokens(comp, object, parsers, count, tuples); in avs_parse_tokens()
305 ret = avs_parse_string_tokens(comp, object, parsers, count, tuples); in avs_parse_tokens()
311 ret = avs_parse_word_tokens(comp, object, parsers, count, tuples); in avs_parse_tokens()
314 dev_err(comp->dev, "unknown token type %d\n", tuples->type); in avs_parse_tokens()
319 dev_err(comp->dev, "parsing %zu tokens of %d type failed: %d\n", in avs_parse_tokens()
332 avs_parse_##name##_ptr(struct snd_soc_component *comp, void *elem, void *object, u32 offset) \
335 struct avs_soc_component *acomp = to_avs_soc_component(comp); \
355 parse_audio_format_bitfield(struct snd_soc_component *comp, void *elem, void *object, u32 offset) in parse_audio_format_bitfield() argument
397 static int parse_link_formatted_string(struct snd_soc_component *comp, void *elem, in parse_link_formatted_string() argument
401 struct snd_soc_acpi_mach *mach = dev_get_platdata(comp->card->dev); in parse_link_formatted_string()
410 return avs_parse_string_token(comp, elem, object, offset); in parse_link_formatted_string()
414 return avs_parse_string_token(comp, elem, object, offset); in parse_link_formatted_string()
424 parse_dictionary_header(struct snd_soc_component *comp, in parse_dictionary_header() argument
434 dev_err(comp->dev, "invalid dictionary header, expected: %d\n", in parse_dictionary_header()
440 *dict = devm_kcalloc(comp->card->dev, *num_entries, entry_size, GFP_KERNEL); in parse_dictionary_header()
448 parse_dictionary_entries(struct snd_soc_component *comp, in parse_dictionary_entries() argument
466 ret = avs_parse_tokens(comp, pos, parsers, num_parsers, tuples, esize); in parse_dictionary_entries()
468 dev_err(comp->dev, "parse entry: %d of type: %d failed: %d\n", in parse_dictionary_entries()
481 static int parse_dictionary(struct snd_soc_component *comp, in parse_dictionary() argument
489 ret = parse_dictionary_header(comp, tuples, dict, num_entries, in parse_dictionary()
498 return parse_dictionary_entries(comp, tuples, block_size, *dict, in parse_dictionary()
512 static int avs_tplg_parse_libraries(struct snd_soc_component *comp, in avs_tplg_parse_libraries() argument
515 struct avs_soc_component *acomp = to_avs_soc_component(comp); in avs_tplg_parse_libraries()
518 return parse_dictionary(comp, tuples, block_size, (void **)&tplg->libs, in avs_tplg_parse_libraries()
576 static int avs_tplg_parse_audio_formats(struct snd_soc_component *comp, in avs_tplg_parse_audio_formats() argument
580 struct avs_soc_component *acomp = to_avs_soc_component(comp); in avs_tplg_parse_audio_formats()
583 return parse_dictionary(comp, tuples, block_size, (void **)&tplg->fmts, in avs_tplg_parse_audio_formats()
617 static int avs_tplg_parse_modcfgs_base(struct snd_soc_component *comp, in avs_tplg_parse_modcfgs_base() argument
621 struct avs_soc_component *acomp = to_avs_soc_component(comp); in avs_tplg_parse_modcfgs_base()
624 return parse_dictionary(comp, tuples, block_size, (void **)&tplg->modcfgs_base, in avs_tplg_parse_modcfgs_base()
902 assign_copier_gtw_instance(struct snd_soc_component *comp, struct avs_tplg_modcfg_ext *cfg) in assign_copier_gtw_instance() argument
923 mach = dev_get_platdata(comp->card->dev); in assign_copier_gtw_instance()
937 static int avs_tplg_parse_modcfg_ext(struct snd_soc_component *comp, in avs_tplg_parse_modcfg_ext() argument
951 ret = avs_parse_tokens(comp, cfg, modcfg_ext_parsers, in avs_tplg_parse_modcfg_ext()
957 assign_copier_gtw_instance(comp, cfg); in avs_tplg_parse_modcfg_ext()
969 pins = devm_kcalloc(comp->card->dev, num_pins, sizeof(*pins), GFP_KERNEL); in avs_tplg_parse_modcfg_ext()
974 ret = parse_dictionary_entries(comp, tuples, block_size, in avs_tplg_parse_modcfg_ext()
987 static int avs_tplg_parse_modcfgs_ext(struct snd_soc_component *comp, in avs_tplg_parse_modcfgs_ext() argument
991 struct avs_soc_component *acomp = to_avs_soc_component(comp); in avs_tplg_parse_modcfgs_ext()
995 ret = parse_dictionary_header(comp, tuples, (void **)&tplg->modcfgs_ext, in avs_tplg_parse_modcfgs_ext()
1015 ret = avs_tplg_parse_modcfg_ext(comp, cfg, tuples, esize); in avs_tplg_parse_modcfgs_ext()
1059 static int avs_tplg_parse_pplcfgs(struct snd_soc_component *comp, in avs_tplg_parse_pplcfgs() argument
1063 struct avs_soc_component *acomp = to_avs_soc_component(comp); in avs_tplg_parse_pplcfgs()
1066 return parse_dictionary(comp, tuples, block_size, (void **)&tplg->pplcfgs, in avs_tplg_parse_pplcfgs()
1124 static int avs_tplg_parse_bindings(struct snd_soc_component *comp, in avs_tplg_parse_bindings() argument
1128 struct avs_soc_component *acomp = to_avs_soc_component(comp); in avs_tplg_parse_bindings()
1131 return parse_dictionary(comp, tuples, block_size, (void **)&tplg->bindings, in avs_tplg_parse_bindings()
1199 avs_tplg_module_create(struct snd_soc_component *comp, struct avs_tplg_pipeline *owner, in avs_tplg_module_create() argument
1212 module = devm_kzalloc(comp->card->dev, sizeof(*module), GFP_KERNEL); in avs_tplg_module_create()
1216 ret = avs_parse_tokens(comp, module, module_parsers, in avs_tplg_module_create()
1230 config_ids = devm_kcalloc(comp->card->dev, num_config_ids, sizeof(*config_ids), in avs_tplg_module_create()
1236 ret = parse_dictionary_entries(comp, tuples, block_size, in avs_tplg_module_create()
1284 avs_tplg_pipeline_create(struct snd_soc_component *comp, struct avs_tplg_path *owner, in avs_tplg_pipeline_create() argument
1291 pipeline = devm_kzalloc(comp->card->dev, sizeof(*pipeline), GFP_KERNEL); in avs_tplg_pipeline_create()
1307 ret = avs_parse_tokens(comp, pipeline, pipeline_parsers, in avs_tplg_pipeline_create()
1328 pipeline->bindings = devm_kcalloc(comp->card->dev, pipeline->num_bindings, in avs_tplg_pipeline_create()
1346 module = avs_tplg_module_create(comp, pipeline, tuples, esize); in avs_tplg_pipeline_create()
1348 dev_err(comp->dev, "parse module failed: %ld\n", in avs_tplg_pipeline_create()
1359 ret = parse_dictionary_entries(comp, tuples, block_size, pipeline->bindings, in avs_tplg_pipeline_create()
1391 avs_tplg_path_create(struct snd_soc_component *comp, struct avs_tplg_path_template *owner, in avs_tplg_path_create() argument
1400 path = devm_kzalloc(comp->card->dev, sizeof(*path), GFP_KERNEL); in avs_tplg_path_create()
1419 ret = avs_parse_tokens(comp, path, parsers, num_parsers, tuples, offset); in avs_tplg_path_create()
1433 pipeline = avs_tplg_pipeline_create(comp, path, tuples, esize); in avs_tplg_path_create()
1435 dev_err(comp->dev, "parse pipeline failed: %ld\n", in avs_tplg_path_create()
1457 static int parse_path_template(struct snd_soc_component *comp, in parse_path_template() argument
1474 ret = avs_parse_tokens(comp, template, tmpl_tokens, num_tmpl_tokens, tuples, offset); in parse_path_template()
1488 path = avs_tplg_path_create(comp, template, tuples, esize, path_tokens, in parse_path_template()
1491 dev_err(comp->dev, "parse path failed: %ld\n", PTR_ERR(path)); in parse_path_template()
1504 avs_tplg_path_template_create(struct snd_soc_component *comp, struct avs_tplg *owner, in avs_tplg_path_template_create() argument
1510 template = devm_kzalloc(comp->card->dev, sizeof(*template), GFP_KERNEL); in avs_tplg_path_template_create()
1518 ret = parse_path_template(comp, tuples, block_size, template, path_tmpl_parsers, in avs_tplg_path_template_create()
1548 static int avs_tplg_parse_initial_configs(struct snd_soc_component *comp, in avs_tplg_parse_initial_configs() argument
1552 struct avs_soc_component *acomp = to_avs_soc_component(comp); in avs_tplg_parse_initial_configs()
1557 ret = parse_dictionary_header(comp, tuples, (void **)&tplg->init_configs, in avs_tplg_parse_initial_configs()
1581 ret = parse_dictionary_entries(comp, tuples, esize, config, 1, sizeof(*config), in avs_tplg_parse_initial_configs()
1592 config->data = devm_kmemdup(comp->card->dev, init_config_data, esize, GFP_KERNEL); in avs_tplg_parse_initial_configs()
1603 static int avs_route_load(struct snd_soc_component *comp, int index, in avs_route_load() argument
1606 struct snd_soc_acpi_mach *mach = dev_get_platdata(comp->card->dev); in avs_route_load()
1620 buf = devm_kzalloc(comp->card->dev, len, GFP_KERNEL); in avs_route_load()
1626 buf = devm_kzalloc(comp->card->dev, len, GFP_KERNEL); in avs_route_load()
1633 buf = devm_kzalloc(comp->card->dev, len, GFP_KERNEL); in avs_route_load()
1643 static int avs_widget_load(struct snd_soc_component *comp, int index, in avs_widget_load() argument
1649 struct avs_soc_component *acomp = to_avs_soc_component(comp); in avs_widget_load()
1659 dev_info_once(comp->dev, "Device does not support S0IX, check BIOS settings\n"); in avs_widget_load()
1664 mach = dev_get_platdata(comp->card->dev); in avs_widget_load()
1687 template = avs_tplg_path_template_create(comp, tplg, dw->priv.array, in avs_widget_load()
1690 dev_err(comp->dev, "widget %s load failed: %ld\n", dw->name, in avs_widget_load()
1700 static int avs_widget_ready(struct snd_soc_component *comp, int index, in avs_widget_ready() argument
1710 static int avs_dai_load(struct snd_soc_component *comp, int index, in avs_dai_load() argument
1727 static int avs_link_load(struct snd_soc_component *comp, int index, struct snd_soc_dai_link *link, in avs_link_load() argument
1731 dev_info_once(comp->dev, "Device does not support S0IX, check BIOS settings\n"); in avs_link_load()
1765 static int avs_manifest(struct snd_soc_component *comp, int index, in avs_manifest() argument
1769 struct avs_soc_component *acomp = to_avs_soc_component(comp); in avs_manifest()
1781 dev_err(comp->dev, "incorrect manifest format: %d\n", ret); in avs_manifest()
1786 ret = avs_parse_tokens(comp, acomp->tplg, manifest_parsers, in avs_manifest()
1797 dev_err(comp->dev, "audio formats lookup failed: %d\n", ret); in avs_manifest()
1802 ret = avs_tplg_parse_libraries(comp, tuples, offset); in avs_manifest()
1812 dev_err(comp->dev, "modcfgs_base lookup failed: %d\n", ret); in avs_manifest()
1817 ret = avs_tplg_parse_audio_formats(comp, tuples, offset); in avs_manifest()
1827 dev_err(comp->dev, "modcfgs_ext lookup failed: %d\n", ret); in avs_manifest()
1832 ret = avs_tplg_parse_modcfgs_base(comp, tuples, offset); in avs_manifest()
1842 dev_err(comp->dev, "pplcfgs lookup failed: %d\n", ret); in avs_manifest()
1847 ret = avs_tplg_parse_modcfgs_ext(comp, tuples, offset); in avs_manifest()
1857 dev_err(comp->dev, "bindings lookup failed: %d\n", ret); in avs_manifest()
1862 ret = avs_tplg_parse_pplcfgs(comp, tuples, offset); in avs_manifest()
1872 dev_err(comp->dev, "condpath lookup failed: %d\n", ret); in avs_manifest()
1877 ret = avs_tplg_parse_bindings(comp, tuples, offset); in avs_manifest()
1887 dev_dbg(comp->dev, "init config lookup failed: %d\n", ret); in avs_manifest()
1890 dev_err(comp->dev, "init config lookup failed: %d\n", ret); in avs_manifest()
1901 ret = avs_tplg_parse_initial_configs(comp, tuples, remaining); in avs_manifest()
1938 avs_control_load(struct snd_soc_component *comp, int index, struct snd_kcontrol_new *ctmpl, in avs_control_load() argument
1960 ctl_data = devm_kzalloc(comp->card->dev, sizeof(*ctl_data), GFP_KERNEL); in avs_control_load()
1964 ret = parse_dictionary_entries(comp, tuples, block_size, ctl_data, 1, sizeof(*ctl_data), in avs_control_load()
1992 struct avs_tplg *avs_tplg_new(struct snd_soc_component *comp) in avs_tplg_new() argument
1996 tplg = devm_kzalloc(comp->card->dev, sizeof(*tplg), GFP_KERNEL); in avs_tplg_new()
2000 tplg->comp = comp; in avs_tplg_new()
2006 int avs_load_topology(struct snd_soc_component *comp, const char *filename) in avs_load_topology() argument
2011 ret = request_firmware(&fw, filename, comp->dev); in avs_load_topology()
2013 dev_err(comp->dev, "request topology \"%s\" failed: %d\n", filename, ret); in avs_load_topology()
2017 ret = snd_soc_tplg_component_load(comp, &avs_tplg_ops, fw); in avs_load_topology()
2019 dev_err(comp->dev, "load topology \"%s\" failed: %d\n", filename, ret); in avs_load_topology()
2025 int avs_remove_topology(struct snd_soc_component *comp) in avs_remove_topology() argument
2027 snd_soc_tplg_component_remove(comp); in avs_remove_topology()