Unverified Commit 95aef355 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: soc-dai: add snd_soc_dai_trigger()



Current ALSA SoC is directly using dai->driver->ops->xxx,
thus, it has deep nested bracket, and it makes code unreadable.
This patch adds new snd_soc_dai_trigger() and use it.

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87sgqyhn40.wl-kuninori.morimoto.gx@renesas.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 4beb8e10
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -156,6 +156,8 @@ void snd_soc_dai_shutdown(struct snd_soc_dai *dai,
			  struct snd_pcm_substream *substream);
int snd_soc_dai_prepare(struct snd_soc_dai *dai,
			struct snd_pcm_substream *substream);
int snd_soc_dai_trigger(struct snd_soc_dai *dai,
			struct snd_pcm_substream *substream, int cmd);

struct snd_soc_dai_ops {
	/*
+12 −0
Original line number Diff line number Diff line
@@ -318,3 +318,15 @@ int snd_soc_dai_prepare(struct snd_soc_dai *dai,

	return ret;
}

int snd_soc_dai_trigger(struct snd_soc_dai *dai,
			struct snd_pcm_substream *substream,
			int cmd)
{
	int ret = 0;

	if (dai->driver->ops->trigger)
		ret = dai->driver->ops->trigger(substream, cmd, dai);

	return ret;
}
+6 −11
Original line number Diff line number Diff line
@@ -1084,13 +1084,10 @@ static int soc_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
	int i, ret;

	for_each_rtd_codec_dai(rtd, i, codec_dai) {
		if (codec_dai->driver->ops->trigger) {
			ret = codec_dai->driver->ops->trigger(substream,
							      cmd, codec_dai);
		ret = snd_soc_dai_trigger(codec_dai, substream, cmd);
		if (ret < 0)
			return ret;
	}
	}

	for_each_rtdcom(rtd, rtdcom) {
		component = rtdcom->component;
@@ -1104,11 +1101,9 @@ static int soc_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
			return ret;
	}

	if (cpu_dai->driver->ops->trigger) {
		ret = cpu_dai->driver->ops->trigger(substream, cmd, cpu_dai);
	snd_soc_dai_trigger(cpu_dai, substream, cmd);
	if (ret < 0)
		return ret;
	}

	if (rtd->dai_link->ops->trigger) {
		ret = rtd->dai_link->ops->trigger(substream, cmd);