ASoC: Intel: Skylake: Remove get dsp_ops in cleanup routine
authorG Kranthi <gudishax.kranthikumar@intel.com>
Mon, 13 Mar 2017 16:41:30 +0000 (22:11 +0530)
committerMark Brown <broonie@kernel.org>
Wed, 15 Mar 2017 17:28:15 +0000 (17:28 +0000)
dsp ops is already set in init, so use this in cleanup routine
instead of again retrieving it. Also constify struct skl_dsp_ops.

Signed-off-by: G Kranthi <gudishax.kranthikumar@intel.com>
Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/skylake/skl-messages.c
sound/soc/intel/skylake/skl-sst-ipc.h

index 29523ddcfab06a36cd369b61a4d676b9c08c1474..ba1ec973ded7f71cbfafc0979768ac4bb2b8218c 100644 (file)
@@ -274,6 +274,7 @@ int skl_init_dsp(struct skl *skl)
        if (ret < 0)
                return ret;
 
+       skl->skl_sst->dsp_ops = ops;
        dev_dbg(bus->dev, "dsp registration status=%d\n", ret);
 
        return ret;
@@ -284,16 +285,11 @@ int skl_free_dsp(struct skl *skl)
        struct hdac_ext_bus *ebus = &skl->ebus;
        struct hdac_bus *bus = ebus_to_hbus(ebus);
        struct skl_sst *ctx = skl->skl_sst;
-       const struct skl_dsp_ops *ops;
 
        /* disable  ppcap interrupt */
        snd_hdac_ext_bus_ppcap_int_enable(&skl->ebus, false);
 
-       ops = skl_get_dsp_ops(skl->pci->device);
-       if (!ops)
-               return -EIO;
-
-       ops->cleanup(bus->dev, ctx);
+       ctx->dsp_ops->cleanup(bus->dev, ctx);
 
        if (ctx->dsp->addr.lpe)
                iounmap(ctx->dsp->addr.lpe);
index 9660ace379ababf63d9ab29ab5941b7e3000c03d..7d21f055328d89ede164c847c50d0f7a8e38682d 100644 (file)
@@ -105,6 +105,8 @@ struct skl_sst {
        void (*update_d0i3c)(struct device *dev, bool enable);
 
        struct skl_d0i3_data d0i3;
+
+       const struct skl_dsp_ops *dsp_ops;
 };
 
 struct skl_ipc_init_instance_msg {