Lines Matching refs:swidget

32 				    struct snd_sof_widget *swidget)  in sof_widget_free_unlocked()  argument
39 if (!swidget->private) in sof_widget_free_unlocked()
42 trace_sof_widget_free(swidget); in sof_widget_free_unlocked()
45 if (--swidget->use_count) in sof_widget_free_unlocked()
48 pipe_widget = swidget->spipe->pipe_widget; in sof_widget_free_unlocked()
51 sof_reset_route_setup_status(sdev, swidget); in sof_widget_free_unlocked()
55 err = tplg_ops->widget_free(sdev, swidget); in sof_widget_free_unlocked()
61 ret = snd_sof_dsp_core_put(sdev, swidget->core); in sof_widget_free_unlocked()
64 swidget->core, swidget->widget->name); in sof_widget_free_unlocked()
73 if (swidget->dynamic_pipeline_widget && swidget->id != snd_soc_dapm_scheduler) { in sof_widget_free_unlocked()
80 if (swidget->id == snd_soc_dapm_scheduler) in sof_widget_free_unlocked()
81 swidget->spipe->complete = 0; in sof_widget_free_unlocked()
84 dev_dbg(sdev->dev, "widget %s freed\n", swidget->widget->name); in sof_widget_free_unlocked()
89 int sof_widget_free(struct snd_sof_dev *sdev, struct snd_sof_widget *swidget) in sof_widget_free() argument
93 mutex_lock(&swidget->setup_mutex); in sof_widget_free()
94 ret = sof_widget_free_unlocked(sdev, swidget); in sof_widget_free()
95 mutex_unlock(&swidget->setup_mutex); in sof_widget_free()
102 struct snd_sof_widget *swidget) in sof_widget_setup_unlocked() argument
109 if (!swidget->private) in sof_widget_setup_unlocked()
112 trace_sof_widget_setup(swidget); in sof_widget_setup_unlocked()
115 if (++swidget->use_count > 1) in sof_widget_setup_unlocked()
125 if (swidget->dynamic_pipeline_widget && swidget->id != snd_soc_dapm_scheduler) { in sof_widget_setup_unlocked()
126 if (!swidget->spipe || !swidget->spipe->pipe_widget) { in sof_widget_setup_unlocked()
127 dev_err(sdev->dev, "No pipeline set for %s\n", swidget->widget->name); in sof_widget_setup_unlocked()
132 ret = sof_widget_setup_unlocked(sdev, swidget->spipe->pipe_widget); in sof_widget_setup_unlocked()
138 ret = snd_sof_dsp_core_get(sdev, swidget->core); in sof_widget_setup_unlocked()
141 swidget->widget->name); in sof_widget_setup_unlocked()
147 ret = tplg_ops->widget_setup(sdev, swidget); in sof_widget_setup_unlocked()
153 if (WIDGET_IS_DAI(swidget->id)) { in sof_widget_setup_unlocked()
157 ret = tplg_ops->dai_config(sdev, swidget, flags, NULL); in sof_widget_setup_unlocked()
165 ret = tplg_ops->control->widget_kcontrol_setup(sdev, swidget); in sof_widget_setup_unlocked()
170 dev_dbg(sdev->dev, "widget %s setup complete\n", swidget->widget->name); in sof_widget_setup_unlocked()
176 sof_widget_free_unlocked(sdev, swidget); in sof_widget_setup_unlocked()
179 snd_sof_dsp_core_put(sdev, swidget->core); in sof_widget_setup_unlocked()
181 if (swidget->id != snd_soc_dapm_scheduler) in sof_widget_setup_unlocked()
182 sof_widget_free_unlocked(sdev, swidget->spipe->pipe_widget); in sof_widget_setup_unlocked()
185 swidget->use_count--; in sof_widget_setup_unlocked()
190 int sof_widget_setup(struct snd_sof_dev *sdev, struct snd_sof_widget *swidget) in sof_widget_setup() argument
194 mutex_lock(&swidget->setup_mutex); in sof_widget_setup()
195 ret = sof_widget_setup_unlocked(sdev, swidget); in sof_widget_setup()
196 mutex_unlock(&swidget->setup_mutex); in sof_widget_setup()
314 struct snd_sof_widget *swidget = widget->dobj.private; in sof_unprepare_widgets_in_path() local
319 if (!swidget || !swidget->prepared || swidget->use_count > 0) in sof_unprepare_widgets_in_path()
325 widget_ops[widget->id].ipc_unprepare(swidget); in sof_unprepare_widgets_in_path()
327 swidget->prepared = false; in sof_unprepare_widgets_in_path()
350 struct snd_sof_widget *swidget = widget->dobj.private; in sof_prepare_widgets_in_path() local
359 if (!swidget || !widget_ops[widget->id].ipc_prepare || swidget->prepared) in sof_prepare_widgets_in_path()
363 ret = widget_ops[widget->id].ipc_prepare(swidget, fe_params, platform_params, in sof_prepare_widgets_in_path()
370 swidget->prepared = true; in sof_prepare_widgets_in_path()
386 swidget && swidget->prepared) { in sof_prepare_widgets_in_path()
387 widget_ops[widget->id].ipc_unprepare(swidget); in sof_prepare_widgets_in_path()
388 swidget->prepared = false; in sof_prepare_widgets_in_path()
444 struct snd_sof_widget *swidget = widget->dobj.private; in sof_set_up_widgets_in_path() local
449 if (swidget) { in sof_set_up_widgets_in_path()
467 if (spipe == swidget->spipe) in sof_set_up_widgets_in_path()
473 pipeline_list->pipelines[i] = swidget->spipe; in sof_set_up_widgets_in_path()
488 if (swidget) in sof_set_up_widgets_in_path()
489 sof_widget_free(sdev, swidget); in sof_set_up_widgets_in_path()
606 struct snd_sof_widget *swidget = widget->dobj.private; in sof_widget_list_setup() local
610 if (!swidget) in sof_widget_list_setup()
613 spipe = swidget->spipe; in sof_widget_list_setup()
616 swidget->widget->name); in sof_widget_list_setup()
624 swidget->widget->name); in sof_widget_list_setup()
804 struct snd_sof_widget *swidget; in snd_sof_find_swidget() local
806 list_for_each_entry(swidget, &sdev->widget_list, list) { in snd_sof_find_swidget()
807 if (strcmp(name, swidget->widget->name) == 0) in snd_sof_find_swidget()
808 return swidget; in snd_sof_find_swidget()
820 struct snd_sof_widget *swidget; in snd_sof_find_swidget_sname() local
828 list_for_each_entry(swidget, &sdev->widget_list, list) { in snd_sof_find_swidget_sname()
829 if (!strcmp(pcm_name, swidget->widget->sname) && in snd_sof_find_swidget_sname()
830 swidget->id == type) in snd_sof_find_swidget_sname()
831 return swidget; in snd_sof_find_swidget_sname()