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

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
...@@ -338,7 +338,7 @@ u32 rsnd_get_adinr(struct rsnd_mod *mod) ...@@ -338,7 +338,7 @@ u32 rsnd_get_adinr(struct rsnd_mod *mod)
/* /*
* rsnd_dai functions * 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 rsnd_priv *priv = rsnd_mod_to_priv(mod); \
struct device *dev = rsnd_priv_to_dev(priv); \ struct device *dev = rsnd_priv_to_dev(priv); \
...@@ -347,12 +347,12 @@ u32 rsnd_get_adinr(struct rsnd_mod *mod) ...@@ -347,12 +347,12 @@ u32 rsnd_get_adinr(struct rsnd_mod *mod)
(mod)->ops->func(mod, rdai); \ (mod)->ops->func(mod, rdai); \
}) })
#define rsnd_mod_call(mod, func, rdai) \ #define rsnd_mod_call(mod, func, rdai...) \
(!(mod) ? -ENODEV : \ (!(mod) ? -ENODEV : \
!((mod)->ops->func) ? 0 : \ !((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; \ struct rsnd_mod *mod; \
int ret = 0, i; \ int ret = 0, i; \
...@@ -360,7 +360,7 @@ u32 rsnd_get_adinr(struct rsnd_mod *mod) ...@@ -360,7 +360,7 @@ u32 rsnd_get_adinr(struct rsnd_mod *mod)
mod = (io)->mod[i]; \ mod = (io)->mod[i]; \
if (!mod) \ if (!mod) \
continue; \ continue; \
ret = rsnd_mod_call(mod, fn, (rdai)); \ ret = rsnd_mod_call(mod, fn, rdai); \
if (ret < 0) \ if (ret < 0) \
break; \ break; \
} \ } \
...@@ -510,20 +510,20 @@ static int rsnd_soc_dai_trigger(struct snd_pcm_substream *substream, int cmd, ...@@ -510,20 +510,20 @@ static int rsnd_soc_dai_trigger(struct snd_pcm_substream *substream, int cmd,
if (ret < 0) if (ret < 0)
goto dai_trigger_end; goto dai_trigger_end;
ret = rsnd_dai_call(rdai, io, init); ret = rsnd_dai_call(init, io, rdai);
if (ret < 0) if (ret < 0)
goto dai_trigger_end; goto dai_trigger_end;
ret = rsnd_dai_call(rdai, io, start); ret = rsnd_dai_call(start, io, rdai);
if (ret < 0) if (ret < 0)
goto dai_trigger_end; goto dai_trigger_end;
break; break;
case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_STOP:
ret = rsnd_dai_call(rdai, io, stop); ret = rsnd_dai_call(stop, io, rdai);
if (ret < 0) if (ret < 0)
goto dai_trigger_end; goto dai_trigger_end;
ret = rsnd_dai_call(rdai, io, quit); ret = rsnd_dai_call(quit, io, rdai);
if (ret < 0) if (ret < 0)
goto dai_trigger_end; goto dai_trigger_end;
...@@ -951,11 +951,11 @@ static int rsnd_probe(struct platform_device *pdev) ...@@ -951,11 +951,11 @@ static int rsnd_probe(struct platform_device *pdev)
} }
for_each_rsnd_dai(rdai, priv, i) { 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) if (ret)
return ret; return ret;
ret = rsnd_dai_call(rdai, &rdai->capture, probe); ret = rsnd_dai_call(probe, &rdai->capture, rdai);
if (ret) if (ret)
return ret; return ret;
} }
...@@ -998,11 +998,11 @@ static int rsnd_remove(struct platform_device *pdev) ...@@ -998,11 +998,11 @@ static int rsnd_remove(struct platform_device *pdev)
pm_runtime_disable(&pdev->dev); pm_runtime_disable(&pdev->dev);
for_each_rsnd_dai(rdai, priv, i) { 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) if (ret)
return ret; return ret;
ret = rsnd_dai_call(rdai, &rdai->capture, remove); ret = rsnd_dai_call(remove, &rdai->capture, rdai);
if (ret) if (ret)
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment