ASoC: topology: Simplify remove_widget function
authorAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Fri, 30 Oct 2020 14:54:27 +0000 (10:54 -0400)
committerMark Brown <broonie@kernel.org>
Wed, 4 Nov 2020 17:51:09 +0000 (17:51 +0000)
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>
sound/soc/soc-topology.c

index 4f632ae..07c6018 100644 (file)
@@ -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: