Lines Matching refs:scomp
52 int sof_update_ipc_object(struct snd_soc_component *scomp, void *object, enum sof_tokens token_id, in sof_update_ipc_object() argument
56 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_update_ipc_object()
63 dev_err(scomp->dev, "Invalid token count for token ID: %d\n", token_id); in sof_update_ipc_object()
73 dev_err(scomp->dev, "Invalid tokens for token id: %d\n", token_id); in sof_update_ipc_object()
104 dev_err(scomp->dev, in sof_update_ipc_object()
264 struct snd_soc_component *scomp = scontrol->scomp; in set_up_volume_table() local
265 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in set_up_volume_table()
271 dev_err(scomp->dev, "Mandatory op %s not set\n", __func__); in set_up_volume_table()
406 static int sof_parse_uuid_tokens(struct snd_soc_component *scomp, in sof_parse_uuid_tokens() argument
568 static int sof_parse_string_tokens(struct snd_soc_component *scomp, in sof_parse_string_tokens() argument
612 static int sof_parse_word_tokens(struct snd_soc_component *scomp, in sof_parse_word_tokens() argument
663 static int sof_parse_token_sets(struct snd_soc_component *scomp, in sof_parse_token_sets() argument
678 dev_err(scomp->dev, "error: invalid array size 0x%x\n", in sof_parse_token_sets()
686 dev_err(scomp->dev, "error: invalid array size 0x%x\n", in sof_parse_token_sets()
694 found += sof_parse_uuid_tokens(scomp, object, offset, tokens, count, in sof_parse_token_sets()
698 found += sof_parse_string_tokens(scomp, object, offset, tokens, count, in sof_parse_token_sets()
705 found += sof_parse_word_tokens(scomp, object, offset, tokens, count, in sof_parse_token_sets()
709 dev_err(scomp->dev, "error: unknown token type %d\n", in sof_parse_token_sets()
741 static int sof_parse_tokens(struct snd_soc_component *scomp, void *object, in sof_parse_tokens() argument
753 return sof_parse_token_sets(scomp, object, tokens, num_tokens, array, in sof_parse_tokens()
761 static int sof_control_load_volume(struct snd_soc_component *scomp, in sof_control_load_volume() argument
766 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_control_load_volume()
797 dev_err(scomp->dev, "error: invalid TLV data\n"); in sof_control_load_volume()
804 dev_err(scomp->dev, "error: setting up volume table\n"); in sof_control_load_volume()
810 ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens, in sof_control_load_volume()
814 dev_err(scomp->dev, "error: parse led tokens failed %d\n", in sof_control_load_volume()
829 dev_dbg(scomp->dev, "tplg: load kcontrol index %d chans %d\n", in sof_control_load_volume()
841 static int sof_control_load_enum(struct snd_soc_component *scomp, in sof_control_load_enum() argument
846 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_control_load_enum()
857 dev_dbg(scomp->dev, "tplg: load kcontrol index %d chans %d comp_id %d\n", in sof_control_load_enum()
863 static int sof_control_load_bytes(struct snd_soc_component *scomp, in sof_control_load_bytes() argument
868 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_control_load_bytes()
877 dev_dbg(scomp->dev, "tplg: load kcontrol index %d\n", scontrol->comp_id); in sof_control_load_bytes()
892 static int sof_control_load(struct snd_soc_component *scomp, int index, in sof_control_load() argument
899 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_control_load()
904 dev_dbg(scomp->dev, "tplg: load control type %d name : %s\n", in sof_control_load()
917 scontrol->scomp = scomp; in sof_control_load()
928 ret = sof_control_load_volume(scomp, scontrol, kc, hdr); in sof_control_load()
933 ret = sof_control_load_bytes(scomp, scontrol, kc, hdr); in sof_control_load()
939 ret = sof_control_load_enum(scomp, scontrol, kc, hdr); in sof_control_load()
949 dev_warn(scomp->dev, "control type not supported %d:%d:%d\n", in sof_control_load()
969 static int sof_control_unload(struct snd_soc_component *scomp, in sof_control_unload() argument
972 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_control_unload()
977 dev_dbg(scomp->dev, "tplg: unload control name : %s\n", scontrol->name); in sof_control_unload()
982 dev_err(scomp->dev, "failed to free control: %s\n", scontrol->name); in sof_control_unload()
999 static int sof_connect_dai_widget(struct snd_soc_component *scomp, in sof_connect_dai_widget() argument
1004 struct snd_soc_card *card = scomp->card; in sof_connect_dai_widget()
1010 dev_err(scomp->dev, "Widget %s does not have stream\n", w->name); in sof_connect_dai_widget()
1034 dev_err(scomp->dev, "error: can't find BE for DAI %s\n", in sof_connect_dai_widget()
1040 dev_dbg(scomp->dev, "tplg: connected widget %s -> DAI link %s\n", in sof_connect_dai_widget()
1056 dev_err(scomp->dev, "error: can't find BE for DAI %s\n", in sof_connect_dai_widget()
1062 dev_dbg(scomp->dev, "tplg: connected widget %s -> DAI link %s\n", in sof_connect_dai_widget()
1072 dev_err(scomp->dev, "error: can't connect DAI %s stream %s\n", in sof_connect_dai_widget()
1080 static void sof_disconnect_dai_widget(struct snd_soc_component *scomp, in sof_disconnect_dai_widget() argument
1083 struct snd_soc_card *card = scomp->card; in sof_disconnect_dai_widget()
1121 static int spcm_bind(struct snd_soc_component *scomp, struct snd_sof_pcm *spcm, in spcm_bind() argument
1126 host_widget = snd_sof_find_swidget_sname(scomp, in spcm_bind()
1130 dev_err(scomp->dev, "can't find host comp to bind pcm\n"); in spcm_bind()
1154 static int sof_widget_parse_tokens(struct snd_soc_component *scomp, struct snd_sof_widget *swidget, in sof_widget_parse_tokens() argument
1158 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_widget_parse_tokens()
1166 dev_err(scomp->dev, "No token list for widget %s\n", swidget->widget->name); in sof_widget_parse_tokens()
1184 dev_err(scomp->dev, "Invalid token id %d for widget %s\n", in sof_widget_parse_tokens()
1193 ret = sof_parse_tokens(scomp, swidget, in sof_widget_parse_tokens()
1198 dev_err(scomp->dev, "Failed parsing %s for widget %s\n", in sof_widget_parse_tokens()
1242 dev_err(scomp->dev, "Failed parsing %s for widget %s err: %d\n", in sof_widget_parse_tokens()
1255 static int sof_widget_ready(struct snd_soc_component *scomp, int index, in sof_widget_ready() argument
1259 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_widget_ready()
1272 swidget->scomp = scomp; in sof_widget_ready()
1280 dev_dbg(scomp->dev, "tplg: ready widget id %d pipe %d type %d name : %s stream %s\n", in sof_widget_ready()
1299 ret = sof_widget_parse_tokens(scomp, swidget, tw, token_list, token_list_size); in sof_widget_ready()
1301 ret = sof_connect_dai_widget(scomp, w, tw, dai); in sof_widget_ready()
1312 dev_err(scomp->dev, "error: process tokens not found\n"); in sof_widget_ready()
1316 ret = sof_widget_parse_tokens(scomp, swidget, tw, token_list, token_list_size); in sof_widget_ready()
1320 dev_err(scomp->dev, "invalid kcontrol count %d for volume\n", in sof_widget_ready()
1337 ret = sof_widget_parse_tokens(scomp, swidget, tw, token_list, token_list_size); in sof_widget_ready()
1343 dev_dbg(scomp->dev, "widget type %d name %s not handled\n", swidget->id, tw->name); in sof_widget_ready()
1349 dev_err(scomp->dev, in sof_widget_ready()
1371 ret = widget_ops[w->id].bind_event(scomp, swidget, in sof_widget_ready()
1374 dev_err(scomp->dev, "widget event binding failed for %s\n", in sof_widget_ready()
1389 static int sof_route_unload(struct snd_soc_component *scomp, in sof_route_unload() argument
1406 static int sof_widget_unload(struct snd_soc_component *scomp, in sof_widget_unload() argument
1409 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_widget_unload()
1436 sof_disconnect_dai_widget(scomp, widget); in sof_widget_unload()
1460 dev_warn(scomp->dev, "unsupported kcontrol_type\n"); in sof_widget_unload()
1488 static int sof_dai_load(struct snd_soc_component *scomp, int index, in sof_dai_load() argument
1492 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_dai_load()
1507 spcm->scomp = scomp; in sof_dai_load()
1518 dev_dbg(scomp->dev, "tplg: load pcm %s\n", pcm->dai_name); in sof_dai_load()
1523 ret = sof_parse_tokens(scomp, spcm, stream_tokens, in sof_dai_load()
1527 dev_err(scomp->dev, "error: parse stream tokens failed %d\n", in sof_dai_load()
1544 dev_err(scomp->dev, "error: can't alloc page table for %s %d\n", in sof_dai_load()
1551 ret = spcm_bind(scomp, spcm, stream); in sof_dai_load()
1553 dev_err(scomp->dev, in sof_dai_load()
1571 dev_err(scomp->dev, "error: can't alloc page table for %s %d\n", in sof_dai_load()
1577 ret = spcm_bind(scomp, spcm, stream); in sof_dai_load()
1579 dev_err(scomp->dev, in sof_dai_load()
1594 static int sof_dai_unload(struct snd_soc_component *scomp, in sof_dai_unload() argument
1619 static int sof_link_load(struct snd_soc_component *scomp, int index, struct snd_soc_dai_link *link, in sof_link_load() argument
1622 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_link_load()
1632 dev_err(scomp->dev, "error: no platforms\n"); in sof_link_load()
1635 link->platforms->name = dev_name(scomp->dev); in sof_link_load()
1662 dev_err(scomp->dev, "error: expected tokens for DAI, none found\n"); in sof_link_load()
1682 dev_dbg(scomp->dev, "tplg: %d hw_configs found, default id: %d for dai link %s!\n", in sof_link_load()
1685 ret = sof_parse_tokens(scomp, slink, common_dai_link_tokens, in sof_link_load()
1689 dev_err(scomp->dev, "Failed tp parse common DAI link tokens\n"); in sof_link_load()
1755 dev_err(scomp->dev, "failed to parse %s for dai link %s\n", in sof_link_load()
1769 dev_err(scomp->dev, "failed to parse %s for dai link %s\n", in sof_link_load()
1789 dev_err(scomp->dev, "failed to parse %s for dai link %s\n", in sof_link_load()
1808 static int sof_link_unload(struct snd_soc_component *scomp, struct snd_soc_dobj *dobj) in sof_link_unload() argument
1825 static int sof_route_load(struct snd_soc_component *scomp, int index, in sof_route_load() argument
1828 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_route_load()
1839 sroute->scomp = scomp; in sof_route_load()
1840 dev_dbg(scomp->dev, "sink %s control %s source %s\n", in sof_route_load()
1845 source_swidget = snd_sof_find_swidget(scomp, (char *)route->source); in sof_route_load()
1847 dev_err(scomp->dev, "error: source %s not found\n", in sof_route_load()
1864 sink_swidget = snd_sof_find_swidget(scomp, (char *)route->sink); in sof_route_load()
1866 dev_err(scomp->dev, "error: sink %s not found\n", in sof_route_load()
1929 static int sof_complete(struct snd_soc_component *scomp) in sof_complete() argument
1931 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_complete()
2012 static int sof_manifest(struct snd_soc_component *scomp, int index, in sof_manifest() argument
2015 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_manifest()
2019 return ipc_tplg_ops->parse_manifest(scomp, index, man); in sof_manifest()
2075 int snd_sof_load_topology(struct snd_soc_component *scomp, const char *file) in snd_sof_load_topology() argument
2077 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in snd_sof_load_topology()
2081 dev_dbg(scomp->dev, "loading topology:%s\n", file); in snd_sof_load_topology()
2083 ret = request_firmware(&fw, file, scomp->dev); in snd_sof_load_topology()
2085 dev_err(scomp->dev, "error: tplg request firmware %s failed err: %d\n", in snd_sof_load_topology()
2087 dev_err(scomp->dev, in snd_sof_load_topology()
2092 ret = snd_soc_tplg_component_load(scomp, &sof_tplg_ops, fw); in snd_sof_load_topology()
2094 dev_err(scomp->dev, "error: tplg component load failed %d\n", in snd_sof_load_topology()