Commit 6f437917 authored by Amadeusz Sławiński's avatar Amadeusz Sławiński Committed by Mark Brown

ASoC: Intel: Skylake: Release topology when we are done with it

Currently topology is kept in memory while driver is running. It's
unnecessary, as it's only needed during parsing.
Signed-off-by: default avatarAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20190827141712.21015-6-amadeuszx.slawinski@linux.intel.comReviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 0cc33cec
...@@ -3579,23 +3579,25 @@ int skl_tplg_init(struct snd_soc_component *component, struct hdac_bus *bus) ...@@ -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 * The complete tplg for SKL is loaded as index 0, we don't use
* any other index * any other index
*/ */
ret = snd_soc_tplg_component_load(component, ret = snd_soc_tplg_component_load(component, &skl_tplg_ops, fw, 0);
&skl_tplg_ops, fw, 0);
if (ret < 0) { if (ret < 0) {
dev_err(bus->dev, "tplg component load failed%d\n", ret); dev_err(bus->dev, "tplg component load failed%d\n", ret);
release_firmware(fw); goto err;
return -EINVAL;
} }
skl->tplg = fw;
ret = skl_tplg_create_pipe_widget_list(component); ret = skl_tplg_create_pipe_widget_list(component);
if (ret < 0) if (ret < 0) {
return ret; dev_err(bus->dev, "tplg create pipe widget list failed%d\n",
ret);
goto err;
}
list_for_each_entry(ppl, &skl->ppl_list, node) list_for_each_entry(ppl, &skl->ppl_list, node)
skl_tplg_set_pipe_type(skl, ppl->pipe); 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) 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) ...@@ -3609,6 +3611,4 @@ void skl_tplg_exit(struct snd_soc_component *component, struct hdac_bus *bus)
/* clean up topology */ /* clean up topology */
snd_soc_tplg_component_remove(component, SND_SOC_TPLG_INDEX_ALL); snd_soc_tplg_component_remove(component, SND_SOC_TPLG_INDEX_ALL);
release_firmware(skl->tplg);
} }
...@@ -75,7 +75,6 @@ struct skl_dev { ...@@ -75,7 +75,6 @@ struct skl_dev {
const char *fw_name; const char *fw_name;
char tplg_name[64]; char tplg_name[64];
unsigned short pci_id; unsigned short pci_id;
const struct firmware *tplg;
int supend_active; int supend_active;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment