ASoC: topology: Remove multistep topology loading
authorAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Fri, 30 Oct 2020 14:54:23 +0000 (10:54 -0400)
committerMark Brown <broonie@kernel.org>
Wed, 4 Nov 2020 17:51:05 +0000 (17:51 +0000)
In theory topology can be loaded in multiple steps by providing index to
snd_soc_tplg_component_load, however, from usability point of view it
doesn't make sense, as can be seen from all current users loading
topology in one go. Remove the unnecessary parameter.

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-3-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc-topology.h
sound/soc/intel/skylake/skl-topology.c
sound/soc/soc-topology.c
sound/soc/sof/pcm.c
sound/soc/sof/topology.c

index b1ac5df..328cf76 100644 (file)
@@ -31,9 +31,6 @@ struct snd_soc_dai_driver;
 struct snd_soc_dai;
 struct snd_soc_dapm_route;
 
-/* object scan be loaded and unloaded in groups with identfying indexes */
-#define SND_SOC_TPLG_INDEX_ALL 0       /* ID that matches all FW objects */
-
 /* dynamic object type */
 enum snd_soc_dobj_type {
        SND_SOC_DOBJ_NONE               = 0,    /* object is not dynamic */
@@ -181,9 +178,8 @@ static inline const void *snd_soc_tplg_get_data(struct snd_soc_tplg_hdr *hdr)
 
 /* Dynamic Object loading and removal for component drivers */
 int snd_soc_tplg_component_load(struct snd_soc_component *comp,
-       struct snd_soc_tplg_ops *ops, const struct firmware *fw,
-       u32 index);
-int snd_soc_tplg_component_remove(struct snd_soc_component *comp, u32 index);
+       struct snd_soc_tplg_ops *ops, const struct firmware *fw);
+int snd_soc_tplg_component_remove(struct snd_soc_component *comp);
 
 /* Binds event handlers to dynamic widgets */
 int snd_soc_tplg_widget_bind_event(struct snd_soc_dapm_widget *w,
index 40bee10..ae466cd 100644 (file)
@@ -3742,12 +3742,7 @@ int skl_tplg_init(struct snd_soc_component *component, struct hdac_bus *bus)
        }
 
 component_load:
-
-       /*
-        * The complete tplg for SKL is loaded as index 0, we don't use
-        * any other index
-        */
-       ret = snd_soc_tplg_component_load(component, &skl_tplg_ops, fw, 0);
+       ret = snd_soc_tplg_component_load(component, &skl_tplg_ops, fw);
        if (ret < 0) {
                dev_err(bus->dev, "tplg component load failed%d\n", ret);
                goto err;
@@ -3777,5 +3772,5 @@ void skl_tplg_exit(struct snd_soc_component *component, struct hdac_bus *bus)
                list_del(&ppl->node);
 
        /* clean up topology */
-       snd_soc_tplg_component_remove(component, SND_SOC_TPLG_INDEX_ALL);
+       snd_soc_tplg_component_remove(component);
 }
index 7919097..2a71cec 100644 (file)
@@ -64,7 +64,6 @@ struct soc_tplg {
        struct device *dev;
        struct snd_soc_component *comp;
        u32 index;      /* current block index */
-       u32 req_index;  /* required index, only loaded/free matching blocks */
 
        /* vendor specific kcontrol operations */
        const struct snd_soc_tplg_kcontrol_ops *io_ops;
@@ -2680,11 +2679,6 @@ static int soc_tplg_load_header(struct soc_tplg *tplg,
 
        tplg->pos = tplg->hdr_pos + sizeof(struct snd_soc_tplg_hdr);
 
-       /* check for matching ID */
-       if (le32_to_cpu(hdr->index) != tplg->req_index &&
-               tplg->req_index != SND_SOC_TPLG_INDEX_ALL)
-               return 0;
-
        tplg->index = le32_to_cpu(hdr->index);
 
        switch (le32_to_cpu(hdr->type)) {
@@ -2804,7 +2798,7 @@ static int soc_tplg_load(struct soc_tplg *tplg)
 
 /* load audio component topology from "firmware" file */
 int snd_soc_tplg_component_load(struct snd_soc_component *comp,
-       struct snd_soc_tplg_ops *ops, const struct firmware *fw, u32 id)
+       struct snd_soc_tplg_ops *ops, const struct firmware *fw)
 {
        struct soc_tplg tplg;
        int ret;
@@ -2819,7 +2813,6 @@ int snd_soc_tplg_component_load(struct snd_soc_component *comp,
        tplg.dev = comp->dev;
        tplg.comp = comp;
        tplg.ops = ops;
-       tplg.req_index = id;
        tplg.io_ops = ops->io_ops;
        tplg.io_ops_count = ops->io_ops_count;
        tplg.bytes_ext_ops = ops->bytes_ext_ops;
@@ -2828,14 +2821,14 @@ int snd_soc_tplg_component_load(struct snd_soc_component *comp,
        ret = soc_tplg_load(&tplg);
        /* free the created components if fail to load topology */
        if (ret)
-               snd_soc_tplg_component_remove(comp, SND_SOC_TPLG_INDEX_ALL);
+               snd_soc_tplg_component_remove(comp);
 
        return ret;
 }
 EXPORT_SYMBOL_GPL(snd_soc_tplg_component_load);
 
 /* remove dynamic controls from the component driver */
-int snd_soc_tplg_component_remove(struct snd_soc_component *comp, u32 index)
+int snd_soc_tplg_component_remove(struct snd_soc_component *comp)
 {
        struct snd_soc_dobj *dobj, *next_dobj;
        int pass = SOC_TPLG_PASS_END;
@@ -2847,11 +2840,6 @@ int snd_soc_tplg_component_remove(struct snd_soc_component *comp, u32 index)
                list_for_each_entry_safe(dobj, next_dobj, &comp->dobj_list,
                        list) {
 
-                       /* match index */
-                       if (dobj->index != index &&
-                               index != SND_SOC_TPLG_INDEX_ALL)
-                               continue;
-
                        switch (dobj->type) {
                        case SND_SOC_DOBJ_MIXER:
                                remove_mixer(comp, dobj, pass);
index cbac6f1..0a70e68 100644 (file)
@@ -780,7 +780,7 @@ static int sof_pcm_probe(struct snd_soc_component *component)
 static void sof_pcm_remove(struct snd_soc_component *component)
 {
        /* remove topology */
-       snd_soc_tplg_component_remove(component, SND_SOC_TPLG_INDEX_ALL);
+       snd_soc_tplg_component_remove(component);
 }
 
 void snd_sof_new_platform_drv(struct snd_sof_dev *sdev)
index 523a386..44fdded 100644 (file)
@@ -3734,9 +3734,7 @@ int snd_sof_load_topology(struct snd_soc_component *scomp, const char *file)
                return ret;
        }
 
-       ret = snd_soc_tplg_component_load(scomp,
-                                         &sof_tplg_ops, fw,
-                                         SND_SOC_TPLG_INDEX_ALL);
+       ret = snd_soc_tplg_component_load(scomp, &sof_tplg_ops, fw);
        if (ret < 0) {
                dev_err(scomp->dev, "error: tplg component load failed %d\n",
                        ret);