Currently topology is kept in memory while driver is running. It's
unnecessary, as it's only needed during parsing.

Signed-off-by: Amadeusz Sławiński <amadeuszx.slawin...@linux.intel.com>
---
 sound/soc/intel/skylake/skl-topology.c | 20 ++++++++++----------
 sound/soc/intel/skylake/skl.h          |  1 -
 2 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/sound/soc/intel/skylake/skl-topology.c 
b/sound/soc/intel/skylake/skl-topology.c
index ae5c75d03fdc..69cd7a81bf2a 100644
--- a/sound/soc/intel/skylake/skl-topology.c
+++ b/sound/soc/intel/skylake/skl-topology.c
@@ -3579,23 +3579,25 @@ int skl_tplg_init(struct snd_soc_component *component, 
struct hdac_bus *bus)
         * 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, 0);
        if (ret < 0) {
                dev_err(bus->dev, "tplg component load failed%d\n", ret);
-               release_firmware(fw);
-               return -EINVAL;
+               goto err;
        }
 
-       skl->tplg = fw;
        ret = skl_tplg_create_pipe_widget_list(component);
-       if (ret < 0)
-               return ret;
+       if (ret < 0) {
+               dev_err(bus->dev, "tplg create pipe widget list failed%d\n",
+                               ret);
+               goto err;
+       }
 
        list_for_each_entry(ppl, &skl->ppl_list, node)
                skl_tplg_set_pipe_type(skl, ppl->pipe);
 
-       return 0;
+err:
+       release_firmware(fw);
+       return ret;
 }
 
 void skl_tplg_exit(struct snd_soc_component *component, struct hdac_bus *bus)
@@ -3609,6 +3611,4 @@ void skl_tplg_exit(struct snd_soc_component *component, 
struct hdac_bus *bus)
 
        /* clean up topology */
        snd_soc_tplg_component_remove(component, SND_SOC_TPLG_INDEX_ALL);
-
-       release_firmware(skl->tplg);
 }
diff --git a/sound/soc/intel/skylake/skl.h b/sound/soc/intel/skylake/skl.h
index f8c714153610..2bfbf59277c4 100644
--- a/sound/soc/intel/skylake/skl.h
+++ b/sound/soc/intel/skylake/skl.h
@@ -75,7 +75,6 @@ struct skl_dev {
        const char *fw_name;
        char tplg_name[64];
        unsigned short pci_id;
-       const struct firmware *tplg;
 
        int supend_active;
 
-- 
2.17.1

Reply via email to