skl_init_dsp and skl_sst_ctx_init share the exact same purpose: trigger for sst_dsp creation. Merge them together. While adding code, change reorders certain blocks, so skl_dev instance is always initialized before sst_dsp_new cascade begins.
Signed-off-by: Cezary Rojewski cezary.rojewski@intel.com --- sound/soc/intel/skylake/skl-messages.c | 21 +++++++++++++++------ sound/soc/intel/skylake/skl-sst-dsp.h | 1 - sound/soc/intel/skylake/skl-sst-utils.c | 23 ----------------------- 3 files changed, 15 insertions(+), 30 deletions(-)
diff --git a/sound/soc/intel/skylake/skl-messages.c b/sound/soc/intel/skylake/skl-messages.c index 5f63c3052db9..7a161bbf8f26 100644 --- a/sound/soc/intel/skylake/skl-messages.c +++ b/sound/soc/intel/skylake/skl-messages.c @@ -142,18 +142,27 @@ int skl_dsp_cleanup(struct device *dev,
int skl_init_dsp(struct skl_dev *skl, struct sst_pdata *pdata) { + struct sst_dsp *dsp; struct hdac_bus *bus = skl_to_bus(skl); - int ret; + struct device *dev = skl->dev;
/* enable ppcap interrupt */ snd_hdac_ext_bus_ppcap_enable(bus, true); snd_hdac_ext_bus_ppcap_int_enable(bus, true);
- ret = skl_sst_ctx_init(skl, pdata); - if (ret < 0) - return ret; - - dev_dbg(bus->dev, "dsp registration status=%d\n", ret); + skl->is_first_boot = true; + INIT_LIST_HEAD(&skl->uuid_list); + init_waitqueue_head(&skl->mod_load_wait); + + pdata->id = skl->pci->device; + pdata->irq = skl->pci->irq; + pdata->dma_base = -1; + pdata->dsp = skl; + dsp = sst_dsp_new(dev, pdata); + if (!dsp) { + dev_err(dev, "%s: no device\n", __func__); + return -ENODEV; + }
return 0; } diff --git a/sound/soc/intel/skylake/skl-sst-dsp.h b/sound/soc/intel/skylake/skl-sst-dsp.h index 3294826d5cf7..eb8cc5606fc6 100644 --- a/sound/soc/intel/skylake/skl-sst-dsp.h +++ b/sound/soc/intel/skylake/skl-sst-dsp.h @@ -221,7 +221,6 @@ int skl_dsp_strip_extended_manifest(struct firmware *fw);
void skl_dsp_set_astate_cfg(struct skl_dev *skl, u32 cnt, void *data);
-int skl_sst_ctx_init(struct skl_dev *skl, struct sst_pdata *pdata); int skl_prepare_lib_load(struct skl_dev *skl, struct skl_lib_info *linfo, struct firmware *stripped_fw, unsigned int hdr_offset, int index); diff --git a/sound/soc/intel/skylake/skl-sst-utils.c b/sound/soc/intel/skylake/skl-sst-utils.c index ea5419012312..34ac21b85cd9 100644 --- a/sound/soc/intel/skylake/skl-sst-utils.c +++ b/sound/soc/intel/skylake/skl-sst-utils.c @@ -354,29 +354,6 @@ int skl_dsp_strip_extended_manifest(struct firmware *fw) return 0; }
-int skl_sst_ctx_init(struct skl_dev *skl, struct sst_pdata *pdata) -{ - struct sst_dsp *sst; - struct device *dev = skl->dev; - - pdata->id = skl->pci->device; - pdata->irq = skl->pci->irq; - pdata->dma_base = -1; - pdata->dsp = skl; - INIT_LIST_HEAD(&skl->uuid_list); - sst = sst_dsp_new(dev, pdata); - if (!sst) { - dev_err(dev, "%s: no device\n", __func__); - return -ENODEV; - } - - skl->dsp = sst; - init_waitqueue_head(&skl->mod_load_wait); - skl->is_first_boot = true; - - return 0; -} - int skl_prepare_lib_load(struct skl_dev *skl, struct skl_lib_info *linfo, struct firmware *stripped_fw, unsigned int hdr_offset, int index)