summaryrefslogtreecommitdiff
path: root/sound/soc/sof/sof-priv.h
diff options
context:
space:
mode:
authorRanjani Sridharan <ranjani.sridharan@linux.intel.com>2022-03-17 10:50:28 -0700
committerMark Brown <broonie@kernel.org>2022-03-18 16:04:36 +0000
commit657774acd00f3d63ebae06e5d15a74e013cee0ed (patch)
treed0128ddef30c6043ad2d8f992dd45bd93831c928 /sound/soc/sof/sof-priv.h
parent051744b1bf0b13f63af5de3c296d04ab0cc6117c (diff)
downloadlwn-657774acd00f3d63ebae06e5d15a74e013cee0ed.tar.gz
lwn-657774acd00f3d63ebae06e5d15a74e013cee0ed.zip
ASoC: SOF: Make sof_suspend/resume IPC agnostic
Add a new set of IPC ops for PM with the ctx_save and ctx_restore ops for suspend/resume and implement the ops for IPC3. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20220317175044.1752400-4-ranjani.sridharan@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof/sof-priv.h')
-rw-r--r--sound/soc/sof/sof-priv.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
index 0b89c3e6ef21..3e883044dd0f 100644
--- a/sound/soc/sof/sof-priv.h
+++ b/sound/soc/sof/sof-priv.h
@@ -360,18 +360,28 @@ struct snd_sof_ipc_msg {
bool ipc_complete;
};
+/**
+ * struct sof_ipc_pm_ops - IPC-specific PM ops
+ * @ctx_save: Function pointer for context save
+ * @ctx_restore: Function pointer for context restore
+ */
+struct sof_ipc_pm_ops {
+ int (*ctx_save)(struct snd_sof_dev *sdev);
+ int (*ctx_restore)(struct snd_sof_dev *sdev);
+};
+
struct sof_ipc_tplg_ops;
/**
* struct sof_ipc_ops - IPC-specific ops
* @tplg: Pointer to IPC-specific topology ops
+ * @pm: Pointer to PM ops
*/
struct sof_ipc_ops {
const struct sof_ipc_tplg_ops *tplg;
+ const struct sof_ipc_pm_ops *pm;
};
-extern const struct sof_ipc_ops ipc3_ops;
-
/* SOF generic IPC data */
struct snd_sof_ipc {
struct snd_sof_dev *sdev;