Skip to content

Commit

Permalink
ASoC: rsnd: enable to use multi parameter on rsnd_dai_call/rsnd_mod_call
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Kuninori Morimoto authored and Mark Brown committed May 13, 2014
1 parent b42fccf commit 68b6af3
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions sound/soc/sh/rcar/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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); \
Expand All @@ -347,20 +347,20 @@ 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; \
for (i = 0; i < RSND_MOD_MAX; i++) { \
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; \
} \
Expand Down Expand Up @@ -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;

Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down

0 comments on commit 68b6af3

Please sign in to comment.