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

Commit 68b6af36 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: rsnd: enable to use multi parameter on rsnd_dai_call/rsnd_mod_call



rsnd_mod_ops would like to come to use multi parameter.
modify macro to enable it.

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent b42fccf6
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -338,7 +338,7 @@ u32 rsnd_get_adinr(struct rsnd_mod *mod)
/*
 *	rsnd_dai functions
 */
#define __rsnd_mod_call(mod, func, rdai)			\
#define __rsnd_mod_call(mod, func, rdai...)			\
({								\
	struct rsnd_priv *priv = rsnd_mod_to_priv(mod);		\
	struct device *dev = rsnd_priv_to_dev(priv);		\
@@ -347,12 +347,12 @@ u32 rsnd_get_adinr(struct rsnd_mod *mod)
	(mod)->ops->func(mod, rdai);				\
})

#define rsnd_mod_call(mod, func, rdai)	\
#define rsnd_mod_call(mod, func, rdai...)	\
	(!(mod) ? -ENODEV :			\
	 !((mod)->ops->func) ? 0 :		\
	 __rsnd_mod_call(mod, func, (rdai)))
	 __rsnd_mod_call(mod, func, rdai))

#define rsnd_dai_call(rdai, io, fn)				\
#define rsnd_dai_call(fn, io, rdai...)				\
({								\
	struct rsnd_mod *mod;					\
	int ret = 0, i;						\
@@ -360,7 +360,7 @@ u32 rsnd_get_adinr(struct rsnd_mod *mod)
		mod = (io)->mod[i];				\
		if (!mod)					\
			continue;				\
		ret = rsnd_mod_call(mod, fn, (rdai));		\
		ret = rsnd_mod_call(mod, fn, rdai);		\
		if (ret < 0)					\
			break;					\
	}							\
@@ -510,20 +510,20 @@ static int rsnd_soc_dai_trigger(struct snd_pcm_substream *substream, int cmd,
		if (ret < 0)
			goto dai_trigger_end;

		ret = rsnd_dai_call(rdai, io, init);
		ret = rsnd_dai_call(init, io, rdai);
		if (ret < 0)
			goto dai_trigger_end;

		ret = rsnd_dai_call(rdai, io, start);
		ret = rsnd_dai_call(start, io, rdai);
		if (ret < 0)
			goto dai_trigger_end;
		break;
	case SNDRV_PCM_TRIGGER_STOP:
		ret = rsnd_dai_call(rdai, io, stop);
		ret = rsnd_dai_call(stop, io, rdai);
		if (ret < 0)
			goto dai_trigger_end;

		ret = rsnd_dai_call(rdai, io, quit);
		ret = rsnd_dai_call(quit, io, rdai);
		if (ret < 0)
			goto dai_trigger_end;

@@ -951,11 +951,11 @@ static int rsnd_probe(struct platform_device *pdev)
	}

	for_each_rsnd_dai(rdai, priv, i) {
		ret = rsnd_dai_call(rdai, &rdai->playback, probe);
		ret = rsnd_dai_call(probe, &rdai->playback, rdai);
		if (ret)
			return ret;

		ret = rsnd_dai_call(rdai, &rdai->capture, probe);
		ret = rsnd_dai_call(probe, &rdai->capture, rdai);
		if (ret)
			return ret;
	}
@@ -998,11 +998,11 @@ static int rsnd_remove(struct platform_device *pdev)
	pm_runtime_disable(&pdev->dev);

	for_each_rsnd_dai(rdai, priv, i) {
		ret = rsnd_dai_call(rdai, &rdai->playback, remove);
		ret = rsnd_dai_call(remove, &rdai->playback, rdai);
		if (ret)
			return ret;

		ret = rsnd_dai_call(rdai, &rdai->capture, remove);
		ret = rsnd_dai_call(remove, &rdai->capture, rdai);
		if (ret)
			return ret;
	}