Lines Matching defs:scomp

42  * @scomp: pointer to SOC component
52 int sof_update_ipc_object(struct snd_soc_component *scomp, void *object, enum sof_tokens token_id,
56 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
68 dev_err(scomp->dev, "Invalid token count for token ID: %d\n", token_id);
78 dev_err(scomp->dev, "Invalid tokens for token id: %d\n", token_id);
109 dev_err(scomp->dev,
269 struct snd_soc_component *scomp = scontrol->scomp;
270 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
276 dev_err(scomp->dev, "Mandatory op %s not set\n", __func__);
437 * @scomp: pointer to soc component
446 static int sof_parse_uuid_tokens(struct snd_soc_component *scomp,
604 * @scomp: pointer to soc component
613 static int sof_parse_string_tokens(struct snd_soc_component *scomp,
650 * @scomp: pointer to soc component
659 static int sof_parse_word_tokens(struct snd_soc_component *scomp,
697 * @scomp: pointer to soc component
710 static int sof_parse_token_sets(struct snd_soc_component *scomp,
726 dev_err(scomp->dev, "error: invalid array size 0x%x\n",
734 dev_err(scomp->dev, "error: invalid array size 0x%x\n",
742 found += sof_parse_uuid_tokens(scomp, object, offset, tokens, count,
747 ret = sof_parse_string_tokens(scomp, object, offset, tokens, count,
750 dev_err(scomp->dev, "error: no memory to copy string token\n");
760 found += sof_parse_word_tokens(scomp, object, offset, tokens, count,
764 dev_err(scomp->dev, "error: unknown token type %d\n",
786 * @scomp: pointer to soc component
796 static int sof_parse_tokens(struct snd_soc_component *scomp, void *object,
808 return sof_parse_token_sets(scomp, object, tokens, num_tokens, array,
816 static int sof_control_load_volume(struct snd_soc_component *scomp,
821 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
852 dev_err(scomp->dev, "error: invalid TLV data\n");
859 dev_err(scomp->dev, "error: setting up volume table\n");
865 ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
869 dev_err(scomp->dev, "error: parse led tokens failed %d\n",
884 dev_dbg(scomp->dev, "tplg: load kcontrol index %d chans %d\n",
896 static int sof_control_load_enum(struct snd_soc_component *scomp,
901 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
912 dev_dbg(scomp->dev, "tplg: load kcontrol index %d chans %d comp_id %d\n",
918 static int sof_control_load_bytes(struct snd_soc_component *scomp,
923 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
932 dev_dbg(scomp->dev, "tplg: load kcontrol index %d\n", scontrol->comp_id);
947 static int sof_control_load(struct snd_soc_component *scomp, int index,
954 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
959 dev_dbg(scomp->dev, "tplg: load control type %d name : %s\n",
972 scontrol->scomp = scomp;
983 ret = sof_control_load_volume(scomp, scontrol, kc, hdr);
988 ret = sof_control_load_bytes(scomp, scontrol, kc, hdr);
994 ret = sof_control_load_enum(scomp, scontrol, kc, hdr);
1004 dev_warn(scomp->dev, "control type not supported %d:%d:%d\n",
1024 static int sof_control_unload(struct snd_soc_component *scomp,
1027 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
1032 dev_dbg(scomp->dev, "tplg: unload control name : %s\n", scontrol->name);
1037 dev_err(scomp->dev, "failed to free control: %s\n", scontrol->name);
1054 static int sof_connect_dai_widget(struct snd_soc_component *scomp,
1059 struct snd_soc_card *card = scomp->card;
1066 dev_err(scomp->dev, "Widget %s does not have stream\n", w->name);
1095 dev_err(scomp->dev, "error: can't find BE for DAI %s\n", w->name);
1101 dev_dbg(scomp->dev, "tplg: connected widget %s -> DAI link %s\n",
1107 dev_err(scomp->dev, "error: can't connect DAI %s stream %s\n",
1115 static void sof_disconnect_dai_widget(struct snd_soc_component *scomp,
1118 struct snd_soc_card *card = scomp->card;
1149 static int spcm_bind(struct snd_soc_component *scomp, struct snd_sof_pcm *spcm,
1152 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
1158 host_widget = snd_sof_find_swidget_sname(scomp,
1162 dev_err(scomp->dev, "can't find host comp to bind pcm\n");
1186 static int sof_widget_parse_tokens(struct snd_soc_component *scomp, struct snd_sof_widget *swidget,
1190 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
1203 dev_err(scomp->dev, "No token list for widget %s\n", swidget->widget->name);
1221 dev_err(scomp->dev, "Invalid token id %d for widget %s\n",
1230 ret = sof_parse_tokens(scomp, swidget,
1235 dev_err(scomp->dev, "Failed parsing %s for widget %s\n",
1285 dev_err(scomp->dev, "Failed parsing %s for widget %s err: %d\n",
1342 ret = sof_parse_token_sets(swidget->scomp, pin_binding, pin_binding_token,
1385 static int sof_widget_ready(struct snd_soc_component *scomp, int index,
1389 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
1403 swidget->scomp = scomp;
1414 ret = sof_parse_tokens(scomp, w, dapm_widget_tokens, ARRAY_SIZE(dapm_widget_tokens),
1417 dev_err(scomp->dev, "failed to parse dapm widget tokens for %s\n",
1422 ret = sof_parse_tokens(scomp, swidget, comp_pin_tokens,
1426 dev_err(scomp->dev, "failed to parse component pin tokens for %s\n",
1433 dev_err(scomp->dev, "invalid pins for %s: [input: %d, output: %d]\n",
1443 dev_err(scomp->dev, "failed to parse input pin binding for %s\n",
1453 dev_err(scomp->dev, "failed to parse output pin binding for %s\n",
1459 dev_dbg(scomp->dev,
1481 ret = sof_widget_parse_tokens(scomp, swidget, tw, token_list, token_list_size);
1483 ret = sof_connect_dai_widget(scomp, w, tw, dai);
1494 dev_err(scomp->dev, "error: process tokens not found\n");
1498 ret = sof_widget_parse_tokens(scomp, swidget, tw, token_list, token_list_size);
1502 dev_err(scomp->dev, "invalid kcontrol count %d for volume\n",
1519 ret = sof_widget_parse_tokens(scomp, swidget, tw, token_list, token_list_size);
1525 dev_dbg(scomp->dev, "widget type %d name %s not handled\n", swidget->id, tw->name);
1531 dev_err(scomp->dev,
1552 ret = widget_ops[w->id].bind_event(scomp, swidget,
1555 dev_err(scomp->dev, "widget event binding failed for %s\n",
1588 static int sof_route_unload(struct snd_soc_component *scomp,
1605 static int sof_widget_unload(struct snd_soc_component *scomp,
1608 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
1635 sof_disconnect_dai_widget(scomp, widget);
1668 dev_warn(scomp->dev, "unsupported kcontrol_type\n");
1703 static int sof_dai_load(struct snd_soc_component *scomp, int index,
1707 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
1723 spcm->scomp = scomp;
1734 dev_dbg(scomp->dev, "tplg: load pcm %s\n", pcm->dai_name);
1748 ret = sof_parse_tokens(scomp, spcm, stream_tokens,
1752 dev_err(scomp->dev, "error: parse stream tokens failed %d\n",
1769 dev_err(scomp->dev, "error: can't alloc page table for %s %d\n",
1776 ret = spcm_bind(scomp, spcm, stream);
1778 dev_err(scomp->dev,
1796 dev_err(scomp->dev, "error: can't alloc page table for %s %d\n",
1802 ret = spcm_bind(scomp, spcm, stream);
1804 dev_err(scomp->dev,
1819 static int sof_dai_unload(struct snd_soc_component *scomp,
1822 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
1850 static int sof_link_load(struct snd_soc_component *scomp, int index, struct snd_soc_dai_link *link,
1853 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
1863 dev_err(scomp->dev, "error: no platforms\n");
1866 link->platforms->name = dev_name(scomp->dev);
1882 dev_err(scomp->dev, "error: expected tokens for DAI, none found\n");
1902 dev_dbg(scomp->dev, "tplg: %d hw_configs found, default id: %d for dai link %s!\n",
1905 ret = sof_parse_tokens(scomp, slink, common_dai_link_tokens,
1909 dev_err(scomp->dev, "Failed tp parse common DAI link tokens\n");
1983 dev_err(scomp->dev, "failed to parse %s for dai link %s\n",
1997 dev_err(scomp->dev, "failed to parse %s for dai link %s\n",
2017 dev_err(scomp->dev, "failed to parse %s for dai link %s\n",
2036 static int sof_link_unload(struct snd_soc_component *scomp, struct snd_soc_dobj *dobj)
2053 static int sof_route_load(struct snd_soc_component *scomp, int index,
2056 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
2067 sroute->scomp = scomp;
2068 dev_dbg(scomp->dev, "sink %s control %s source %s\n",
2073 source_swidget = snd_sof_find_swidget(scomp, (char *)route->source);
2075 dev_err(scomp->dev, "error: source %s not found\n",
2092 sink_swidget = snd_sof_find_swidget(scomp, (char *)route->sink);
2094 dev_err(scomp->dev, "error: sink %s not found\n",
2158 static int sof_complete(struct snd_soc_component *scomp)
2160 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
2245 static int sof_manifest(struct snd_soc_component *scomp, int index,
2248 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
2252 return tplg_ops->parse_manifest(scomp, index, man);
2341 static int sof_dspless_widget_ready(struct snd_soc_component *scomp, int index,
2346 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
2357 ret = sof_connect_dai_widget(scomp, w, tw, &dai);
2363 swidget->scomp = scomp;
2373 static int sof_dspless_widget_unload(struct snd_soc_component *scomp,
2381 sof_disconnect_dai_widget(scomp, w);
2394 static int sof_dspless_link_load(struct snd_soc_component *scomp, int index,
2398 link->platforms->name = dev_name(scomp->dev);
2428 int snd_sof_load_topology(struct snd_soc_component *scomp, const char *file)
2430 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
2434 dev_dbg(scomp->dev, "loading topology:%s\n", file);
2436 ret = request_firmware(&fw, file, scomp->dev);
2438 dev_err(scomp->dev, "error: tplg request firmware %s failed err: %d\n",
2440 dev_err(scomp->dev,
2446 ret = snd_soc_tplg_component_load(scomp, &sof_dspless_tplg_ops, fw);
2448 ret = snd_soc_tplg_component_load(scomp, &sof_tplg_ops, fw);
2451 dev_err(scomp->dev, "error: tplg component load failed %d\n",