diff options
author | Mark Brown <broonie@kernel.org> | 2018-06-05 12:27:32 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2018-06-05 12:27:32 +0100 |
commit | 5544717d416d9a095edc616be789bdab69e284dc (patch) | |
tree | 446ca20ec2ab442c8f05fac769560ded006003f1 /sound/soc/soc-dapm.c | |
parent | 2858e2cfc2ef6501bc9a8cccf847a4ee58b5c9bf (diff) | |
parent | ff2faf1289c1f81b5b26b9451dd1c2006aac8db8 (diff) |
Merge branch 'asoc-4.18' into asoc-next
Diffstat (limited to 'sound/soc/soc-dapm.c')
-rw-r--r-- | sound/soc/soc-dapm.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 2d9709104ec5..36a39ba30226 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c @@ -433,6 +433,8 @@ err_data: static void dapm_kcontrol_free(struct snd_kcontrol *kctl) { struct dapm_kcontrol_data *data = snd_kcontrol_chip(kctl); + + list_del(&data->paths); kfree(data->wlist); kfree(data); } @@ -724,18 +726,14 @@ static int dapm_connect_mux(struct snd_soc_dapm_context *dapm, item = 0; } - for (i = 0; i < e->items; i++) { - if (!(strcmp(control_name, e->texts[i]))) { - path->name = e->texts[i]; - if (i == item) - path->connect = 1; - else - path->connect = 0; - return 0; - } - } + i = match_string(e->texts, e->items, control_name); + if (i < 0) + return -ENODEV; + + path->name = e->texts[i]; + path->connect = (i == item); + return 0; - return -ENODEV; } /* set up initial codec paths */ |