aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/intel/skylake/skl-sst-ipc.h
diff options
context:
space:
mode:
authorJayachandran B <jayachandran.b@intel.com>2016-11-03 17:07:17 +0530
committerMark Brown <broonie@kernel.org>2016-11-03 11:14:22 -0600
commit5bb4cd46ace5f220fbc34370e7fe9ba515ead9f8 (patch)
tree4a604053780d18f5450c7d022559cafe9ff62c6a /sound/soc/intel/skylake/skl-sst-ipc.h
parentASoC: Intel: Skylake: Add support for programming D0i3C (diff)
downloadlinux-dev-5bb4cd46ace5f220fbc34370e7fe9ba515ead9f8.tar.xz
linux-dev-5bb4cd46ace5f220fbc34370e7fe9ba515ead9f8.zip
ASoC: Intel: Skylake: Add D0iX callbacks
The driver needs two DSP callback, one to set D0i0 (active) and D0i3 (low-power) states. Add these callbacks in dsp ops and implement them for broxton platforms. 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.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/sound/soc/intel/skylake/skl-sst-ipc.h b/sound/soc/intel/skylake/skl-sst-ipc.h
index ef2182d21934..a45c42046b64 100644
--- a/sound/soc/intel/skylake/skl-sst-ipc.h
+++ b/sound/soc/intel/skylake/skl-sst-ipc.h
@@ -53,6 +53,23 @@ struct skl_dsp_cores {
int usage_count[SKL_DSP_CORES_MAX];
};
+/**
+ * skl_d0i3_data: skl D0i3 counters data struct
+ *
+ * @streaming: Count of usecases that can attempt streaming D0i3
+ * @non_streaming: Count of usecases that can attempt non-streaming D0i3
+ * @non_d0i3: Count of usecases that cannot attempt D0i3
+ * @state: current state
+ * @work: D0i3 worker thread
+ */
+struct skl_d0i3_data {
+ int streaming;
+ int non_streaming;
+ int non_d0i3;
+ enum skl_dsp_d0i3_states state;
+ struct delayed_work work;
+};
+
struct skl_sst {
struct device *dev;
struct sst_dsp *dsp;
@@ -86,6 +103,8 @@ struct skl_sst {
/* Callback to update D0i3C register */
void (*update_d0i3c)(struct device *dev, bool enable);
+
+ struct skl_d0i3_data d0i3;
};
struct skl_ipc_init_instance_msg {