Lines Matching full:widget
164 /* mapping of widget types from UAPI IDs to kernel IDs */
271 /* optionally pass new dynamic widget to component driver. This is mainly for
283 /* optionally pass new dynamic widget to component driver. This is mainly for
438 /* remove a widget and it's kcontrols - routes must be removed first */
460 if (dobj->widget.kcontrol_type == SND_SOC_TPLG_TYPE_ENUM) { in remove_widget()
461 /* enumerated widget mixer */ in remove_widget()
481 if (dobj->widget.kcontrol_type in remove_widget()
500 /* widget w is freed by soc-dapm.c */ in remove_widget()
1339 dev_dbg(tplg->dev, " adding DAPM widget mixer control %s at %d\n", in soc_tplg_dapm_widget_dmixer_create()
1430 dev_dbg(tplg->dev, " adding DAPM widget enum control %s\n", in soc_tplg_dapm_widget_denum_create()
1589 struct snd_soc_dapm_widget template, *widget; in soc_tplg_dapm_widget_create() local
1602 dev_dbg(tplg->dev, "ASoC: creating DAPM widget %s id %d\n", in soc_tplg_dapm_widget_create()
1607 /* map user to kernel widget ID */ in soc_tplg_dapm_widget_create()
1612 /* strings are allocated here, but used and freed by the widget */ in soc_tplg_dapm_widget_create()
1638 goto widget; in soc_tplg_dapm_widget_create()
1689 dev_err(tplg->dev, "ASoC: invalid widget control type %d:%d:%d\n", in soc_tplg_dapm_widget_create()
1696 widget: in soc_tplg_dapm_widget_create()
1704 widget = snd_soc_dapm_new_control(dapm, &template); in soc_tplg_dapm_widget_create()
1706 widget = snd_soc_dapm_new_control_unlocked(dapm, &template); in soc_tplg_dapm_widget_create()
1707 if (IS_ERR(widget)) { in soc_tplg_dapm_widget_create()
1708 ret = PTR_ERR(widget); in soc_tplg_dapm_widget_create()
1712 widget->dobj.type = SND_SOC_DOBJ_WIDGET; in soc_tplg_dapm_widget_create()
1713 widget->dobj.widget.kcontrol_type = kcontrol_type; in soc_tplg_dapm_widget_create()
1714 widget->dobj.ops = tplg->ops; in soc_tplg_dapm_widget_create()
1715 widget->dobj.index = tplg->index; in soc_tplg_dapm_widget_create()
1716 list_add(&widget->dobj.list, &tplg->comp->dobj_list); in soc_tplg_dapm_widget_create()
1718 ret = soc_tplg_widget_ready(tplg, widget, w); in soc_tplg_dapm_widget_create()
1728 snd_soc_tplg_widget_remove(widget); in soc_tplg_dapm_widget_create()
1729 snd_soc_dapm_free_widget(widget); in soc_tplg_dapm_widget_create()
1740 struct snd_soc_tplg_dapm_widget *widget; in soc_tplg_dapm_widget_elems_load() local
1748 widget = (struct snd_soc_tplg_dapm_widget *) tplg->pos; in soc_tplg_dapm_widget_elems_load()
1749 if (le32_to_cpu(widget->size) != sizeof(*widget)) { in soc_tplg_dapm_widget_elems_load()
1750 dev_err(tplg->dev, "ASoC: invalid widget size\n"); in soc_tplg_dapm_widget_elems_load()
1754 ret = soc_tplg_dapm_widget_create(tplg, widget); in soc_tplg_dapm_widget_elems_load()
1756 dev_err(tplg->dev, "ASoC: failed to load widget %s\n", in soc_tplg_dapm_widget_elems_load()
1757 widget->name); in soc_tplg_dapm_widget_elems_load()
1775 " widget card binding deferred\n"); in soc_tplg_dapm_complete()
2838 /* remove this dynamic widget */
2841 /* make sure we are a widget */ in snd_soc_tplg_widget_remove()
2857 /* make sure we are a widget with correct context */ in snd_soc_tplg_widget_remove_all()
2865 /* check and free and dynamic widget kcontrols */ in snd_soc_tplg_widget_remove_all()