summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorMarcin Rajwa <marcin.rajwa@linux.intel.com>2020-05-15 16:59:52 +0300
committerMark Brown <broonie@kernel.org>2020-05-18 13:24:54 +0100
commit3541aef1b83fa3a13e9c4ecc0919156ff2ec9c22 (patch)
tree07bbffae9b954402f32a8e9bfca632cabef3f51b /sound
parentc26fde3b15ed41f5f452f1da727795f787833287 (diff)
downloadlinux-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>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/sof/pm.c9
-rw-r--r--sound/soc/sof/sof-priv.h1
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);