aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/intel/skylake/skl-sst-ipc.h
diff options
context:
space:
mode:
authorJayachandran B <jayachandran.b@intel.com>2016-06-21 10:17:41 +0530
committerMark Brown <broonie@kernel.org>2016-06-22 16:13:12 +0100
commit052f103c89aa8ff6a72a4cadc0a5471cc8bc4c93 (patch)
treeba87d20ce1e7d7bf43d2460a4c6f63c66992c7a5 /sound/soc/intel/skylake/skl-sst-ipc.h
parentASoC: Intel: Skylake: Update comment style (diff)
downloadlinux-dev-052f103c89aa8ff6a72a4cadc0a5471cc8bc4c93.tar.xz
linux-dev-052f103c89aa8ff6a72a4cadc0a5471cc8bc4c93.zip
ASoC: Intel: Skylake: Add DSP muti-core infrastructure
The DSP can have more than one cores. In that case the secondary core has to be managed by the driver. This patch adds the changes to driver infrastructure to support multiple core. A new object skl_dsp_cores is introduced to support multiple core. Helpers skl_dsp_get_core() skl_dsp_put_core() help to managed the cores. Many of the power_up/down and DSP APIs take additional argument of core_id. The primary core, 0 is always powered up first and then on demand second core. Signed-off-by: Jayachandran B <jayachandran.b@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/skylake/skl-sst-ipc.h')
-rw-r--r--sound/soc/intel/skylake/skl-sst-ipc.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/sound/soc/intel/skylake/skl-sst-ipc.h b/sound/soc/intel/skylake/skl-sst-ipc.h
index 5102c7b415fe..2e3d4e80ef97 100644
--- a/sound/soc/intel/skylake/skl-sst-ipc.h
+++ b/sound/soc/intel/skylake/skl-sst-ipc.h
@@ -45,6 +45,14 @@ struct skl_ipc_header {
u32 extension;
};
+#define SKL_DSP_CORES_MAX 2
+
+struct skl_dsp_cores {
+ unsigned int count;
+ enum skl_dsp_states state[SKL_DSP_CORES_MAX];
+ int usage_count[SKL_DSP_CORES_MAX];
+};
+
struct skl_sst {
struct device *dev;
struct sst_dsp *dsp;
@@ -66,6 +74,9 @@ struct skl_sst {
/* Is firmware loaded */
bool fw_loaded;
+
+ /* multi-core */
+ struct skl_dsp_cores cores;
};
struct skl_ipc_init_instance_msg {