[alsa-devel] [RFC PATCH 1/4] ASoC: dapm: Add support for hw_free on CODEC to CODEC links
Charles Keepax
ckeepax at opensource.cirrus.com
Thu Oct 11 18:28:28 CEST 2018
Currently, on power down for a CODEC to CODEC DAI link we only call
digital_mute and shutdown. Provide a little more flexibility for drivers
by adding a call to hw_free as well.
Signed-off-by: Charles Keepax <ckeepax at opensource.cirrus.com>
---
sound/soc/soc-dapm.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 8c5b065c88806..a5178845065b3 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -3737,25 +3737,30 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
ret = 0;
}
+ substream.stream = SNDRV_PCM_STREAM_CAPTURE;
snd_soc_dapm_widget_for_each_source_path(w, path) {
source = path->source->priv;
+ if (source->driver->ops->hw_free)
+ source->driver->ops->hw_free(&substream,
+ source);
+
source->active--;
- if (source->driver->ops->shutdown) {
- substream.stream = SNDRV_PCM_STREAM_CAPTURE;
+ if (source->driver->ops->shutdown)
source->driver->ops->shutdown(&substream,
source);
- }
}
+ substream.stream = SNDRV_PCM_STREAM_PLAYBACK;
snd_soc_dapm_widget_for_each_sink_path(w, path) {
sink = path->sink->priv;
+ if (sink->driver->ops->hw_free)
+ sink->driver->ops->hw_free(&substream, sink);
+
sink->active--;
- if (sink->driver->ops->shutdown) {
- substream.stream = SNDRV_PCM_STREAM_PLAYBACK;
+ if (sink->driver->ops->shutdown)
sink->driver->ops->shutdown(&substream, sink);
- }
}
break;
--
2.11.0
More information about the Alsa-devel
mailing list