summaryrefslogtreecommitdiffstats
path: root/sound/soc/sof/sof-priv.h
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2022-06-10 18:28:20 +0100
committerMark Brown <broonie@kernel.org>2022-06-10 18:28:20 +0100
commit55e1c007e1bd3b30efac683f6d7eba6d4a13928d (patch)
treec88329ded80fb262cbb7678b43e0d0bb08638619 /sound/soc/sof/sof-priv.h
parent25ebeeebcb5493b42b6d43e4f4c49823782b83af (diff)
parent63b9069653a710b08d5fd174ac05d43711356541 (diff)
downloadlinux-stable-55e1c007e1bd3b30efac683f6d7eba6d4a13928d.tar.gz
linux-stable-55e1c007e1bd3b30efac683f6d7eba6d4a13928d.tar.bz2
linux-stable-55e1c007e1bd3b30efac683f6d7eba6d4a13928d.zip
ASoC: SOF: Add support ctx_save with IPC4
Merge series from Peter Ujfalusi <peter.ujfalusi@linux.intel.com>: The context save functionality with IPC4 is triggered by sending a message to the firmware about the pending power down of the primary core by the host. In order to have this functionality implemented in a clean way we need to introduce a new IPC level PM ops for core state management and use that instead of open coding IPC messages here and there. The first patch updates the ctx store/ctx_restore documentation to clarify that they are optional.
Diffstat (limited to 'sound/soc/sof/sof-priv.h')
-rw-r--r--sound/soc/sof/sof-priv.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
index 32c152528f1d..bd637153c08f 100644
--- a/sound/soc/sof/sof-priv.h
+++ b/sound/soc/sof/sof-priv.h
@@ -376,12 +376,14 @@ struct sof_ipc_fw_tracing_ops {
/**
* struct sof_ipc_pm_ops - IPC-specific PM ops
- * @ctx_save: Function pointer for context save
- * @ctx_restore: Function pointer for context restore
+ * @ctx_save: Optional function pointer for context save
+ * @ctx_restore: Optional function pointer for context restore
+ * @set_core_state: Optional function pointer for turning on/off a DSP core
*/
struct sof_ipc_pm_ops {
int (*ctx_save)(struct snd_sof_dev *sdev);
int (*ctx_restore)(struct snd_sof_dev *sdev);
+ int (*set_core_state)(struct snd_sof_dev *sdev, int core_idx, bool on);
};
/**