Lines Matching refs:path
403 struct snd_soc_dapm_path *path) in dapm_kcontrol_add_path() argument
407 list_add_tail(&path->list_kcontrol, &data->paths); in dapm_kcontrol_add_path()
411 path->source, NULL, NULL); in dapm_kcontrol_add_path()
433 #define dapm_kcontrol_for_each_path(path, kcontrol) \ argument
434 list_for_each_entry(path, dapm_kcontrol_get_path_list(kcontrol), \
568 struct snd_soc_dapm_path *path, const char *control_name) in dapm_connect_mux() argument
570 const struct snd_kcontrol_new *kcontrol = &path->sink->kcontrol_news[0]; in dapm_connect_mux()
591 path->name = e->texts[i]; in dapm_connect_mux()
593 path->connect = 1; in dapm_connect_mux()
595 path->connect = 0; in dapm_connect_mux()
628 struct snd_soc_dapm_path *path, const char *control_name) in dapm_connect_mixer() argument
633 for (i = 0; i < path->sink->num_kcontrols; i++) { in dapm_connect_mixer()
634 if (!strcmp(control_name, path->sink->kcontrol_news[i].name)) { in dapm_connect_mixer()
635 path->name = path->sink->kcontrol_news[i].name; in dapm_connect_mixer()
636 dapm_set_mixer_path_status(path, i); in dapm_connect_mixer()
779 struct snd_soc_dapm_path *path; in dapm_new_mixer() local
784 list_for_each_entry(path, &w->sources, list_sink) { in dapm_new_mixer()
786 if (path->name != (char *)w->kcontrol_news[i].name) in dapm_new_mixer()
790 dapm_kcontrol_add_path(w->kcontrols[i], path); in dapm_new_mixer()
798 dapm_kcontrol_add_path(w->kcontrols[i], path); in dapm_new_mixer()
809 struct snd_soc_dapm_path *path; in dapm_new_mux() local
828 list_for_each_entry(path, &w->sources, list_sink) { in dapm_new_mux()
829 if (path->name) in dapm_new_mux()
830 dapm_kcontrol_add_path(w->kcontrols[0], path); in dapm_new_mux()
942 struct snd_soc_dapm_path *path; in is_connected_output_ep() local
955 list_for_each_entry(path, &widget->sinks, list_source) { in is_connected_output_ep()
958 if (path->weak || path->is_supply) in is_connected_output_ep()
961 if (path->walking) in is_connected_output_ep()
964 trace_snd_soc_dapm_output_path(widget, path); in is_connected_output_ep()
966 if (path->connect) { in is_connected_output_ep()
967 path->walking = 1; in is_connected_output_ep()
972 err = dapm_list_add_widget(list, path->sink); in is_connected_output_ep()
977 path->walking = 0; in is_connected_output_ep()
982 con += is_connected_output_ep(path->sink, list); in is_connected_output_ep()
984 path->walking = 0; in is_connected_output_ep()
1000 struct snd_soc_dapm_path *path; in is_connected_input_ep() local
1013 list_for_each_entry(path, &widget->sources, list_sink) { in is_connected_input_ep()
1016 if (path->weak || path->is_supply) in is_connected_input_ep()
1019 if (path->walking) in is_connected_input_ep()
1022 trace_snd_soc_dapm_input_path(widget, path); in is_connected_input_ep()
1024 if (path->connect) { in is_connected_input_ep()
1025 path->walking = 1; in is_connected_input_ep()
1030 err = dapm_list_add_widget(list, path->source); in is_connected_input_ep()
1035 path->walking = 0; in is_connected_input_ep()
1040 con += is_connected_input_ep(path->source, list); in is_connected_input_ep()
1042 path->walking = 0; in is_connected_input_ep()
1180 struct snd_soc_dapm_path *path; in dapm_supply_check_power() local
1185 list_for_each_entry(path, &w->sinks, list_source) { in dapm_supply_check_power()
1188 if (path->weak) in dapm_supply_check_power()
1191 if (path->connected && in dapm_supply_check_power()
1192 !path->connected(path->source, path->sink)) in dapm_supply_check_power()
1195 if (dapm_widget_power_check(path->sink)) in dapm_supply_check_power()
1599 struct snd_soc_dapm_path *path; in dapm_widget_set_power() local
1609 list_for_each_entry(path, &w->sources, list_sink) in dapm_widget_set_power()
1610 dapm_widget_set_peer_power(path->source, power, path->connect); in dapm_widget_set_power()
1614 list_for_each_entry(path, &w->sinks, list_source) in dapm_widget_set_power()
1615 dapm_widget_set_peer_power(path->sink, power, in dapm_widget_set_power()
1616 path->connect); in dapm_widget_set_power()
1990 static void soc_dapm_connect_path(struct snd_soc_dapm_path *path, in soc_dapm_connect_path() argument
1993 if (path->connect == connect) in soc_dapm_connect_path()
1996 path->connect = connect; in soc_dapm_connect_path()
1997 dapm_mark_dirty(path->source, reason); in soc_dapm_connect_path()
1998 dapm_mark_dirty(path->sink, reason); in soc_dapm_connect_path()
1999 dapm_path_invalidate(path); in soc_dapm_connect_path()
2006 struct snd_soc_dapm_path *path; in soc_dapm_mux_update_power() local
2013 dapm_kcontrol_for_each_path(path, kcontrol) { in soc_dapm_mux_update_power()
2016 if (!(strcmp(path->name, e->texts[mux]))) in soc_dapm_mux_update_power()
2021 soc_dapm_connect_path(path, connect, "mux update"); in soc_dapm_mux_update_power()
2052 struct snd_soc_dapm_path *path; in soc_dapm_mixer_update_power() local
2058 dapm_kcontrol_for_each_path(path, kcontrol) { in soc_dapm_mixer_update_power()
2060 soc_dapm_connect_path(path, connect, "mixer update"); in soc_dapm_mixer_update_power()
2167 static void dapm_free_path(struct snd_soc_dapm_path *path) in dapm_free_path() argument
2169 list_del(&path->list_sink); in dapm_free_path()
2170 list_del(&path->list_source); in dapm_free_path()
2171 list_del(&path->list_kcontrol); in dapm_free_path()
2172 list_del(&path->list); in dapm_free_path()
2173 kfree(path); in dapm_free_path()
2353 struct snd_soc_dapm_path *path; in snd_soc_dapm_add_path() local
2377 path = kzalloc(sizeof(struct snd_soc_dapm_path), GFP_KERNEL); in snd_soc_dapm_add_path()
2378 if (!path) in snd_soc_dapm_add_path()
2381 path->source = wsource; in snd_soc_dapm_add_path()
2382 path->sink = wsink; in snd_soc_dapm_add_path()
2383 path->connected = connected; in snd_soc_dapm_add_path()
2384 INIT_LIST_HEAD(&path->list); in snd_soc_dapm_add_path()
2385 INIT_LIST_HEAD(&path->list_kcontrol); in snd_soc_dapm_add_path()
2386 INIT_LIST_HEAD(&path->list_source); in snd_soc_dapm_add_path()
2387 INIT_LIST_HEAD(&path->list_sink); in snd_soc_dapm_add_path()
2390 path->is_supply = 1; in snd_soc_dapm_add_path()
2394 path->connect = 1; in snd_soc_dapm_add_path()
2399 ret = dapm_connect_mux(dapm, path, control); in snd_soc_dapm_add_path()
2406 ret = dapm_connect_mixer(dapm, path, control); in snd_soc_dapm_add_path()
2419 list_add(&path->list, &dapm->card->paths); in snd_soc_dapm_add_path()
2420 list_add(&path->list_sink, &wsink->sources); in snd_soc_dapm_add_path()
2421 list_add(&path->list_source, &wsource->sinks); in snd_soc_dapm_add_path()
2429 if (dapm->card->instantiated && path->connect) in snd_soc_dapm_add_path()
2430 dapm_path_invalidate(path); in snd_soc_dapm_add_path()
2434 kfree(path); in snd_soc_dapm_add_path()
2513 struct snd_soc_dapm_path *path, *p; in snd_soc_dapm_del_route() local
2539 path = NULL; in snd_soc_dapm_del_route()
2545 path = p; in snd_soc_dapm_del_route()
2549 if (path) { in snd_soc_dapm_del_route()
2550 wsource = path->source; in snd_soc_dapm_del_route()
2551 wsink = path->sink; in snd_soc_dapm_del_route()
2555 if (path->connect) in snd_soc_dapm_del_route()
2556 dapm_path_invalidate(path); in snd_soc_dapm_del_route()
2558 dapm_free_path(path); in snd_soc_dapm_del_route()
2640 struct snd_soc_dapm_path *path; in snd_soc_dapm_weak_route() local
2659 list_for_each_entry(path, &source->sinks, list_source) { in snd_soc_dapm_weak_route()
2660 if (path->sink == sink) { in snd_soc_dapm_weak_route()
2661 path->weak = 1; in snd_soc_dapm_weak_route()