Skip to content

Commit

Permalink
ASoC: rsnd: use function pointer for each probe
Browse files Browse the repository at this point in the history
R-Car sound consists of many devices.
It will have more device support in the future.
Thus, for each probe become now function pointer array.

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 Mar 4, 2014
1 parent 468be93 commit d1ac970
Showing 1 changed file with 14 additions and 20 deletions.
34 changes: 14 additions & 20 deletions sound/soc/sh/rcar/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -814,7 +814,15 @@ static int rsnd_probe(struct platform_device *pdev)
struct rcar_snd_info *info;
struct rsnd_priv *priv;
struct device *dev = &pdev->dev;
int ret;
int (*probe_func[])(struct platform_device *pdev,
struct rsnd_priv *priv) = {
rsnd_gen_probe,
rsnd_ssi_probe,
rsnd_scu_probe,
rsnd_adg_probe,
rsnd_dai_probe,
};
int ret, i;

info = pdev->dev.platform_data;
if (!info) {
Expand All @@ -838,25 +846,11 @@ static int rsnd_probe(struct platform_device *pdev)
/*
* init each module
*/
ret = rsnd_gen_probe(pdev, priv);
if (ret)
return ret;

ret = rsnd_ssi_probe(pdev, priv);
if (ret)
return ret;

ret = rsnd_scu_probe(pdev, priv);
if (ret)
return ret;

ret = rsnd_adg_probe(pdev, priv);
if (ret)
return ret;

ret = rsnd_dai_probe(pdev, priv);
if (ret)
return ret;
for (i = 0; i < ARRAY_SIZE(probe_func); i++) {
ret = probe_func[i](pdev, priv);
if (ret)
return ret;
}

/*
* asoc register
Expand Down

0 comments on commit d1ac970

Please sign in to comment.