OSDN Git Service

ASoC: SOF: add .shutdown() callback to snd_sof_dsp_ops
authorKeyon Jie <yang.jie@linux.intel.com>
Wed, 13 Jan 2021 15:26:14 +0000 (17:26 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 13 Jan 2021 16:33:41 +0000 (16:33 +0000)
Add .shutdown() callback to the struct snd_sof_dsp_ops, for
doing platform specific actions at shutdown.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Reviewed-by: Bard Liao <bard.liao@intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20210113152617.4048541-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ops.h
sound/soc/sof/sof-priv.h

index 4c1f9da..f0c9ca8 100644 (file)
@@ -37,6 +37,14 @@ static inline int snd_sof_remove(struct snd_sof_dev *sdev)
        return 0;
 }
 
+static inline int snd_sof_shutdown(struct snd_sof_dev *sdev)
+{
+       if (sof_ops(sdev)->shutdown)
+               return sof_ops(sdev)->shutdown(sdev);
+
+       return 0;
+}
+
 /* control */
 
 /*
index 28d19fa..682c4b6 100644 (file)
@@ -98,9 +98,10 @@ struct snd_sof_pdata;
  */
 struct snd_sof_dsp_ops {
 
-       /* probe and remove */
+       /* probe/remove/shutdown */
        int (*probe)(struct snd_sof_dev *sof_dev); /* mandatory */
        int (*remove)(struct snd_sof_dev *sof_dev); /* optional */
+       int (*shutdown)(struct snd_sof_dev *sof_dev); /* optional */
 
        /* DSP core boot / reset */
        int (*run)(struct snd_sof_dev *sof_dev); /* mandatory */
@@ -462,6 +463,7 @@ struct snd_sof_dev {
 
 int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data);
 int snd_sof_device_remove(struct device *dev);
+int snd_sof_device_shutdown(struct device *dev);
 
 int snd_sof_runtime_suspend(struct device *dev);
 int snd_sof_runtime_resume(struct device *dev);