Unverified Commit 32fd1204 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: soc-component: add snd_soc_pcm_component_trigger()



We have 2 type of component functions
snd_soc_component_xxx()     is focusing to component itself,
snd_soc_pcm_component_xxx() is focusing to rtd related component.

Now we can update snd_soc_component_trigger() to
snd_soc_pcm_component_trigger(). This patch do it.

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/87k10nw8xf.wl-kuninori.morimoto.gx@renesas.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 04751119
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -426,9 +426,6 @@ int snd_soc_component_open(struct snd_soc_component *component,
			   struct snd_pcm_substream *substream);
int snd_soc_component_close(struct snd_soc_component *component,
			    struct snd_pcm_substream *substream);
int snd_soc_component_trigger(struct snd_soc_component *component,
			      struct snd_pcm_substream *substream,
			      int cmd);
void snd_soc_component_suspend(struct snd_soc_component *component);
void snd_soc_component_resume(struct snd_soc_component *component);
int snd_soc_component_is_suspended(struct snd_soc_component *component);
@@ -459,5 +456,7 @@ int snd_soc_pcm_component_hw_params(struct snd_pcm_substream *substream,
				    struct snd_soc_component **last);
void snd_soc_pcm_component_hw_free(struct snd_pcm_substream *substream,
				   struct snd_soc_component *last);
int snd_soc_pcm_component_trigger(struct snd_pcm_substream *substream,
				  int cmd);

#endif /* __SOC_COMPONENT_H */
+18 −12
Original line number Diff line number Diff line
@@ -275,18 +275,6 @@ int snd_soc_component_close(struct snd_soc_component *component,
	return soc_component_ret(component, ret);
}

int snd_soc_component_trigger(struct snd_soc_component *component,
			      struct snd_pcm_substream *substream,
			      int cmd)
{
	int ret = 0;

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

	return soc_component_ret(component, ret);
}

void snd_soc_component_suspend(struct snd_soc_component *component)
{
	if (component->driver->suspend)
@@ -593,3 +581,21 @@ void snd_soc_pcm_component_hw_free(struct snd_pcm_substream *substream,
		}
	}
}

int snd_soc_pcm_component_trigger(struct snd_pcm_substream *substream,
				  int cmd)
{
	struct snd_soc_pcm_runtime *rtd = substream->private_data;
	struct snd_soc_component *component;
	int i, ret;

	for_each_rtd_components(rtd, i, component) {
		if (component->driver->trigger) {
			ret = component->driver->trigger(component, substream, cmd);
			if (ret < 0)
				return soc_component_ret(component, ret);
		}
	}

	return 0;
}
+8 −16
Original line number Diff line number Diff line
@@ -1074,38 +1074,30 @@ static int soc_pcm_hw_free(struct snd_pcm_substream *substream)

static int soc_pcm_trigger_start(struct snd_pcm_substream *substream, int cmd)
{
	struct snd_soc_pcm_runtime *rtd = substream->private_data;
	struct snd_soc_component *component;
	int i, ret;
	int ret;

	ret = snd_soc_link_trigger(substream, cmd);
	if (ret < 0)
		return ret;

	for_each_rtd_components(rtd, i, component) {
		ret = snd_soc_component_trigger(component, substream, cmd);
	ret = snd_soc_pcm_component_trigger(substream, cmd);
	if (ret < 0)
		return ret;
	}

	return snd_soc_pcm_dai_trigger(substream, cmd);
}

static int soc_pcm_trigger_stop(struct snd_pcm_substream *substream, int cmd)
{
	struct snd_soc_pcm_runtime *rtd = substream->private_data;
	struct snd_soc_component *component;
	int i, ret;
	int ret;

	ret = snd_soc_pcm_dai_trigger(substream, cmd);
	if (ret < 0)
		return ret;

	for_each_rtd_components(rtd, i, component) {
		ret = snd_soc_component_trigger(component, substream, cmd);
	ret = snd_soc_pcm_component_trigger(substream, cmd);
	if (ret < 0)
		return ret;
	}

	ret = snd_soc_link_trigger(substream, cmd);
	if (ret < 0)