OSDN Git Service

ASoC: Intel: Skylake: Move platform specific init to platform dsp_init()
authorGuneshwor Singh <guneshwor.o.singh@intel.com>
Wed, 2 Aug 2017 16:21:16 +0000 (21:51 +0530)
committerMark Brown <broonie@kernel.org>
Thu, 3 Aug 2017 10:07:26 +0000 (11:07 +0100)
Move ipc_init() from helper function to respective platform's dsp_init()
as ipc_init() per platform can be different.

Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
Acked-By: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/skylake/bxt-sst.c
sound/soc/intel/skylake/skl-sst-utils.c
sound/soc/intel/skylake/skl-sst.c

index c404a42..71042ac 100644 (file)
@@ -581,6 +581,10 @@ int bxt_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
        sst_dsp_mailbox_init(sst, (BXT_ADSP_SRAM0_BASE + SKL_ADSP_W0_STAT_SZ),
                        SKL_ADSP_W0_UP_SZ, BXT_ADSP_SRAM1_BASE, SKL_ADSP_W1_SZ);
 
+       ret = skl_ipc_init(dev, skl);
+       if (ret)
+               return ret;
+
        /* set the D0i3 check */
        skl->ipc.ops.check_dsp_lp_on = skl_ipc_check_D0i0;
 
index 81ee251..369ef7c 100644 (file)
@@ -368,7 +368,6 @@ int skl_sst_ctx_init(struct device *dev, int irq, const char *fw_name,
 {
        struct skl_sst *skl;
        struct sst_dsp *sst;
-       int ret;
 
        skl = devm_kzalloc(dev, sizeof(*skl), GFP_KERNEL);
        if (skl == NULL)
@@ -388,15 +387,12 @@ int skl_sst_ctx_init(struct device *dev, int irq, const char *fw_name,
        sst->dsp_ops = dsp_ops;
        init_waitqueue_head(&skl->mod_load_wait);
        INIT_LIST_HEAD(&sst->module_list);
-       ret = skl_ipc_init(dev, skl);
-       if (ret)
-               return ret;
 
        skl->is_first_boot = true;
        if (dsp)
                *dsp = skl;
 
-       return ret;
+       return 0;
 }
 
 int skl_prepare_lib_load(struct skl_sst *skl, struct skl_lib_info *linfo,
index fd99e74..6cc586d 100644 (file)
@@ -561,6 +561,10 @@ int skl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq,
        sst_dsp_mailbox_init(sst, (SKL_ADSP_SRAM0_BASE + SKL_ADSP_W0_STAT_SZ),
                        SKL_ADSP_W0_UP_SZ, SKL_ADSP_SRAM1_BASE, SKL_ADSP_W1_SZ);
 
+       ret = skl_ipc_init(dev, skl);
+       if (ret)
+               return ret;
+
        sst->fw_ops = skl_fw_ops;
 
        return 0;