diff options
author | Marcin Rajwa <marcin.rajwa@linux.intel.com> | 2020-05-15 16:59:52 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2020-05-18 13:24:54 +0100 |
commit | 3541aef1b83fa3a13e9c4ecc0919156ff2ec9c22 (patch) | |
tree | 07bbffae9b954402f32a8e9bfca632cabef3f51b | |
parent | c26fde3b15ed41f5f452f1da727795f787833287 (diff) | |
download | linux-3541aef1b83fa3a13e9c4ecc0919156ff2ec9c22.tar.gz linux-3541aef1b83fa3a13e9c4ecc0919156ff2ec9c22.tar.bz2 linux-3541aef1b83fa3a13e9c4ecc0919156ff2ec9c22.zip |
ASoC: SOF: add a power_down_notify method
This patch adds a snd_sof_dsp_power_down_notify() method which aims to
prepare the DSP for the upcoming power down.
This new function make use of SOF_IPC_PM_CTX_SAVE message.
Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20200515135958.17511-3-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | sound/soc/sof/pm.c | 9 | ||||
-rw-r--r-- | sound/soc/sof/sof-priv.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c index 119e4d644ef4..5e804a7728f5 100644 --- a/sound/soc/sof/pm.c +++ b/sound/soc/sof/pm.c @@ -256,6 +256,15 @@ suspend: return ret; } +int snd_sof_dsp_power_down_notify(struct snd_sof_dev *sdev) +{ + /* Notify DSP of upcoming power down */ + if (sof_ops(sdev)->remove) + return sof_send_pm_ctx_ipc(sdev, SOF_IPC_PM_CTX_SAVE); + + return 0; +} + int snd_sof_runtime_suspend(struct device *dev) { return sof_suspend(dev, true); diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h index a34dbae9f971..3ed39b887214 100644 --- a/sound/soc/sof/sof-priv.h +++ b/sound/soc/sof/sof-priv.h @@ -453,6 +453,7 @@ int snd_sof_runtime_resume(struct device *dev); int snd_sof_runtime_idle(struct device *dev); int snd_sof_resume(struct device *dev); int snd_sof_suspend(struct device *dev); +int snd_sof_dsp_power_down_notify(struct snd_sof_dev *sdev); int snd_sof_prepare(struct device *dev); void snd_sof_complete(struct device *dev); |