Lines Matching refs:swidget

1177 static int sof_widget_parse_tokens(struct snd_soc_component *scomp, struct snd_sof_widget *swidget,  in sof_widget_parse_tokens()  argument
1194 dev_err(scomp->dev, "No token list for widget %s\n", swidget->widget->name); in sof_widget_parse_tokens()
1203 swidget->tuples = kcalloc(num_tuples, sizeof(*swidget->tuples), GFP_KERNEL); in sof_widget_parse_tokens()
1204 if (!swidget->tuples) in sof_widget_parse_tokens()
1213 object_token_list[i], swidget->widget->name); in sof_widget_parse_tokens()
1221 ret = sof_parse_tokens(scomp, swidget, in sof_widget_parse_tokens()
1228 swidget->widget->name); in sof_widget_parse_tokens()
1238 swidget->tuples, swidget->num_tuples); in sof_widget_parse_tokens()
1242 swidget->widget->name); in sof_widget_parse_tokens()
1251 new_tuples = krealloc(swidget->tuples, in sof_widget_parse_tokens()
1258 swidget->tuples = new_tuples; in sof_widget_parse_tokens()
1267 object_token_list[i], num_sets, swidget->tuples, in sof_widget_parse_tokens()
1268 num_tuples, &swidget->num_tuples); in sof_widget_parse_tokens()
1271 token_list[object_token_list[i]].name, swidget->widget->name, ret); in sof_widget_parse_tokens()
1278 kfree(swidget->tuples); in sof_widget_parse_tokens()
1282 static void sof_free_pin_binding(struct snd_sof_widget *swidget, in sof_free_pin_binding() argument
1290 pin_binding = swidget->sink_pin_binding; in sof_free_pin_binding()
1291 num_pins = swidget->num_sink_pins; in sof_free_pin_binding()
1293 pin_binding = swidget->src_pin_binding; in sof_free_pin_binding()
1294 num_pins = swidget->num_source_pins; in sof_free_pin_binding()
1305 static int sof_parse_pin_binding(struct snd_sof_widget *swidget, in sof_parse_pin_binding() argument
1317 num_pins = swidget->num_sink_pins; in sof_parse_pin_binding()
1321 num_pins = swidget->num_source_pins; in sof_parse_pin_binding()
1327 ret = sof_parse_token_sets(swidget->scomp, pin_binding, pin_binding_token, in sof_parse_pin_binding()
1341 swidget->sink_pin_binding = pb; in sof_parse_pin_binding()
1343 swidget->src_pin_binding = pb; in sof_parse_pin_binding()
1365 struct snd_sof_widget *swidget; in sof_widget_ready() local
1370 swidget = kzalloc(sizeof(*swidget), GFP_KERNEL); in sof_widget_ready()
1371 if (!swidget) in sof_widget_ready()
1374 swidget->scomp = scomp; in sof_widget_ready()
1375 swidget->widget = w; in sof_widget_ready()
1376 swidget->comp_id = sdev->next_comp_id++; in sof_widget_ready()
1377 swidget->id = w->id; in sof_widget_ready()
1378 swidget->pipeline_id = index; in sof_widget_ready()
1379 swidget->private = NULL; in sof_widget_ready()
1380 mutex_init(&swidget->setup_mutex); in sof_widget_ready()
1382 ida_init(&swidget->src_queue_ida); in sof_widget_ready()
1383 ida_init(&swidget->sink_queue_ida); in sof_widget_ready()
1385 ret = sof_parse_tokens(scomp, swidget, comp_pin_tokens, in sof_widget_ready()
1394 if (swidget->num_sink_pins > SOF_WIDGET_MAX_NUM_PINS || in sof_widget_ready()
1395 swidget->num_source_pins > SOF_WIDGET_MAX_NUM_PINS) { in sof_widget_ready()
1397 swidget->widget->name, swidget->num_sink_pins, swidget->num_source_pins); in sof_widget_ready()
1401 if (swidget->num_sink_pins > 1) { in sof_widget_ready()
1402 ret = sof_parse_pin_binding(swidget, priv, SOF_PIN_TYPE_SINK); in sof_widget_ready()
1411 if (swidget->num_source_pins > 1) { in sof_widget_ready()
1412 ret = sof_parse_pin_binding(swidget, priv, SOF_PIN_TYPE_SOURCE); in sof_widget_ready()
1423 swidget->comp_id, w->name, swidget->id, index, in sof_widget_ready()
1424 swidget->num_sink_pins, swidget->num_source_pins, in sof_widget_ready()
1439 kfree(swidget); in sof_widget_ready()
1444 ret = sof_widget_parse_tokens(scomp, swidget, tw, token_list, token_list_size); in sof_widget_ready()
1452 swidget->private = dai; in sof_widget_ready()
1461 ret = sof_widget_parse_tokens(scomp, swidget, tw, token_list, token_list_size); in sof_widget_ready()
1482 ret = sof_widget_parse_tokens(scomp, swidget, tw, token_list, token_list_size); in sof_widget_ready()
1488 dev_dbg(scomp->dev, "widget type %d name %s not handled\n", swidget->id, tw->name); in sof_widget_ready()
1496 tw->shift, swidget->id, tw->name, in sof_widget_ready()
1499 kfree(swidget); in sof_widget_ready()
1504 swidget->core = SOF_DSP_PRIMARY_CORE; in sof_widget_ready()
1506 int core = sof_get_token_value(SOF_TKN_COMP_CORE_ID, swidget->tuples, in sof_widget_ready()
1507 swidget->num_tuples); in sof_widget_ready()
1510 swidget->core = core; in sof_widget_ready()
1516 ret = widget_ops[w->id].bind_event(scomp, swidget, in sof_widget_ready()
1520 swidget->widget->name); in sof_widget_ready()
1521 kfree(swidget->private); in sof_widget_ready()
1522 kfree(swidget->tuples); in sof_widget_ready()
1523 kfree(swidget); in sof_widget_ready()
1535 kfree(swidget->private); in sof_widget_ready()
1536 kfree(swidget->tuples); in sof_widget_ready()
1537 kfree(swidget); in sof_widget_ready()
1541 spipe->pipe_widget = swidget; in sof_widget_ready()
1542 swidget->spipe = spipe; in sof_widget_ready()
1546 w->dobj.private = swidget; in sof_widget_ready()
1547 list_add(&swidget->list, &sdev->widget_list); in sof_widget_ready()
1577 struct snd_sof_widget *swidget; in sof_widget_unload() local
1584 swidget = dobj->private; in sof_widget_unload()
1585 if (!swidget) in sof_widget_unload()
1588 widget = swidget->widget; in sof_widget_unload()
1590 switch (swidget->id) { in sof_widget_unload()
1593 dai = swidget->private; in sof_widget_unload()
1603 struct snd_sof_pipeline *spipe = swidget->spipe; in sof_widget_unload()
1607 swidget->spipe = NULL; in sof_widget_unload()
1643 if (widget_ops && widget_ops[swidget->id].ipc_free) in sof_widget_unload()
1644 widget_ops[swidget->id].ipc_free(swidget); in sof_widget_unload()
1646 ida_destroy(&swidget->src_queue_ida); in sof_widget_unload()
1647 ida_destroy(&swidget->sink_queue_ida); in sof_widget_unload()
1649 sof_free_pin_binding(swidget, SOF_PIN_TYPE_SINK); in sof_widget_unload()
1650 sof_free_pin_binding(swidget, SOF_PIN_TYPE_SOURCE); in sof_widget_unload()
1652 kfree(swidget->tuples); in sof_widget_unload()
1655 list_del(&swidget->list); in sof_widget_unload()
1656 kfree(swidget); in sof_widget_unload()
2094 struct snd_sof_widget *swidget) in sof_set_widget_pipeline() argument
2102 if (scontrol->comp_id == swidget->comp_id && in sof_set_widget_pipeline()
2106 swidget->widget->name); in sof_set_widget_pipeline()
2112 swidget->spipe = spipe; in sof_set_widget_pipeline()
2113 swidget->dynamic_pipeline_widget = pipe_widget->dynamic_pipeline_widget; in sof_set_widget_pipeline()
2123 struct snd_sof_widget *swidget, *comp_swidget; in sof_complete() local
2147 list_for_each_entry(swidget, &sdev->widget_list, list) { in sof_complete()
2148 if (widget_ops && widget_ops[swidget->id].ipc_setup) { in sof_complete()
2149 ret = widget_ops[swidget->id].ipc_setup(swidget); in sof_complete()
2152 swidget->widget->name); in sof_complete()