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: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
Kuninori Morimoto 2014-05-08 17:44:41 -07:00 коммит произвёл Mark Brown
Родитель b42fccf69c
Коммит 68b6af3656
1 изменённых файлов: 13 добавлений и 13 удалений

Просмотреть файл

@ -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;
}