ASoC: topology: Simplify remove_widget function
Now that enum and mixer kcontrols are freed by resource management framework, removing kcontrol becomes one function call, so simplify code in remove_widget. Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com> Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20201030145427.3497990-7-amadeuszx.slawinski@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
033df362ea
commit
8d45665483
|
@ -431,26 +431,8 @@ static void remove_widget(struct snd_soc_component *comp,
|
|||
if (!w->kcontrols)
|
||||
goto free_news;
|
||||
|
||||
/*
|
||||
* Dynamic Widgets either have 1..N enum kcontrols or mixers.
|
||||
* The enum may either have an array of values or strings.
|
||||
*/
|
||||
if (dobj->widget.kcontrol_type == SND_SOC_TPLG_TYPE_ENUM) {
|
||||
/* enumerated widget mixer */
|
||||
for (i = 0; w->kcontrols != NULL && i < w->num_kcontrols; i++) {
|
||||
struct snd_kcontrol *kcontrol = w->kcontrols[i];
|
||||
|
||||
snd_ctl_remove(card, kcontrol);
|
||||
|
||||
}
|
||||
} else {
|
||||
/* volume mixer or bytes controls */
|
||||
for (i = 0; w->kcontrols != NULL && i < w->num_kcontrols; i++) {
|
||||
struct snd_kcontrol *kcontrol = w->kcontrols[i];
|
||||
|
||||
snd_ctl_remove(card, kcontrol);
|
||||
}
|
||||
}
|
||||
for (i = 0; w->kcontrols && i < w->num_kcontrols; i++)
|
||||
snd_ctl_remove(card, w->kcontrols[i]);
|
||||
|
||||
free_news:
|
||||
|
||||
|
|
Loading…
Reference in New Issue