Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 3c01b0e1 authored by Charles Keepax's avatar Charles Keepax Committed by Mark Brown
Browse files

ASoC: dapm: Add support for hw_free on CODEC to CODEC links



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: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 9ab2a1bd
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -3737,26 +3737,31 @@ 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;

	default: