Skip to content

Commit

Permalink
ASoC: rsnd: remove duplicate parameter from rsnd_mod_ops
Browse files Browse the repository at this point in the history
Now, it can get rsnd_dai_stream pointer from rsnd_mod.
Remove duplicate parameter from rsnd_mod_ops

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 d7bdbc5 commit b42fccf
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 94 deletions.
10 changes: 5 additions & 5 deletions sound/soc/sh/rcar/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -338,19 +338,19 @@ u32 rsnd_get_adinr(struct rsnd_mod *mod)
/*
* rsnd_dai functions
*/
#define __rsnd_mod_call(mod, func, rdai, io) \
#define __rsnd_mod_call(mod, func, rdai) \
({ \
struct rsnd_priv *priv = rsnd_mod_to_priv(mod); \
struct device *dev = rsnd_priv_to_dev(priv); \
dev_dbg(dev, "%s [%d] %s\n", \
rsnd_mod_name(mod), rsnd_mod_id(mod), #func); \
(mod)->ops->func(mod, rdai, io); \
(mod)->ops->func(mod, rdai); \
})

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

#define rsnd_dai_call(rdai, io, fn) \
({ \
Expand All @@ -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), (io)); \
ret = rsnd_mod_call(mod, fn, (rdai)); \
if (ret < 0) \
break; \
} \
Expand Down
24 changes: 8 additions & 16 deletions sound/soc/sh/rcar/rsnd.h
Original file line number Diff line number Diff line change
Expand Up @@ -172,23 +172,17 @@ enum rsnd_mod_type {
struct rsnd_mod_ops {
char *name;
int (*probe)(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io);
struct rsnd_dai *rdai);
int (*remove)(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io);
struct rsnd_dai *rdai);
int (*init)(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io);
struct rsnd_dai *rdai);
int (*quit)(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io);
struct rsnd_dai *rdai);
int (*start)(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io);
struct rsnd_dai *rdai);
int (*stop)(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io);
struct rsnd_dai *rdai);
};

struct rsnd_dai_stream;
Expand Down Expand Up @@ -365,11 +359,9 @@ unsigned int rsnd_src_get_ssi_rate(struct rsnd_priv *priv,
struct rsnd_dai_stream *io,
struct snd_pcm_runtime *runtime);
int rsnd_src_ssi_mode_init(struct rsnd_mod *ssi_mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io);
struct rsnd_dai *rdai);
int rsnd_src_enable_ssi_irq(struct rsnd_mod *ssi_mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io);
struct rsnd_dai *rdai);

#define rsnd_src_nr(priv) ((priv)->src_nr)

Expand Down
91 changes: 38 additions & 53 deletions sound/soc/sh/rcar/src.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,9 @@ struct rsnd_src {
* Gen1/Gen2 common functions
*/
int rsnd_src_ssi_mode_init(struct rsnd_mod *ssi_mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_dai_stream *io = rsnd_mod_to_io(ssi_mod);
struct rsnd_mod *src_mod = rsnd_io_to_mod_src(io);
int ssi_id = rsnd_mod_id(ssi_mod);

Expand Down Expand Up @@ -145,8 +145,7 @@ int rsnd_src_ssi_mode_init(struct rsnd_mod *ssi_mod,
}

int rsnd_src_enable_ssi_irq(struct rsnd_mod *ssi_mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_priv *priv = rsnd_mod_to_priv(ssi_mod);

Expand Down Expand Up @@ -182,9 +181,9 @@ unsigned int rsnd_src_get_ssi_rate(struct rsnd_priv *priv,
}

static int rsnd_src_set_convert_rate(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
struct rsnd_src *src = rsnd_mod_to_src(mod);
u32 convert_rate = rsnd_src_convert_rate(src);
Expand Down Expand Up @@ -221,8 +220,7 @@ static int rsnd_src_set_convert_rate(struct rsnd_mod *mod,
}

static int rsnd_src_init(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_src *src = rsnd_mod_to_src(mod);

Expand All @@ -232,8 +230,7 @@ static int rsnd_src_init(struct rsnd_mod *mod,
}

static int rsnd_src_quit(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_src *src = rsnd_mod_to_src(mod);

Expand All @@ -243,8 +240,7 @@ static int rsnd_src_quit(struct rsnd_mod *mod,
}

static int rsnd_src_start(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_src *src = rsnd_mod_to_src(mod);

Expand All @@ -262,8 +258,7 @@ static int rsnd_src_start(struct rsnd_mod *mod,


static int rsnd_src_stop(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_src *src = rsnd_mod_to_src(mod);

Expand All @@ -281,9 +276,9 @@ static struct rsnd_mod_ops rsnd_src_non_ops = {
* Gen1 functions
*/
static int rsnd_src_set_route_gen1(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
struct src_route_config {
u32 mask;
int shift;
Expand Down Expand Up @@ -319,9 +314,9 @@ static int rsnd_src_set_route_gen1(struct rsnd_mod *mod,
}

static int rsnd_src_set_convert_timing_gen1(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
struct rsnd_src *src = rsnd_mod_to_src(mod);
struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
Expand Down Expand Up @@ -378,12 +373,11 @@ static int rsnd_src_set_convert_timing_gen1(struct rsnd_mod *mod,
}

static int rsnd_src_set_convert_rate_gen1(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
int ret;

ret = rsnd_src_set_convert_rate(mod, rdai, io);
ret = rsnd_src_set_convert_rate(mod, rdai);
if (ret < 0)
return ret;

Expand All @@ -400,50 +394,47 @@ static int rsnd_src_set_convert_rate_gen1(struct rsnd_mod *mod,
}

static int rsnd_src_init_gen1(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
int ret;

ret = rsnd_src_init(mod, rdai, io);
ret = rsnd_src_init(mod, rdai);
if (ret < 0)
return ret;

ret = rsnd_src_set_route_gen1(mod, rdai, io);
ret = rsnd_src_set_route_gen1(mod, rdai);
if (ret < 0)
return ret;

ret = rsnd_src_set_convert_rate_gen1(mod, rdai, io);
ret = rsnd_src_set_convert_rate_gen1(mod, rdai);
if (ret < 0)
return ret;

ret = rsnd_src_set_convert_timing_gen1(mod, rdai, io);
ret = rsnd_src_set_convert_timing_gen1(mod, rdai);
if (ret < 0)
return ret;

return 0;
}

static int rsnd_src_start_gen1(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
int id = rsnd_mod_id(mod);

rsnd_mod_bset(mod, SRC_ROUTE_CTRL, (1 << id), (1 << id));

return rsnd_src_start(mod, rdai, io);
return rsnd_src_start(mod, rdai);
}

static int rsnd_src_stop_gen1(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
int id = rsnd_mod_id(mod);

rsnd_mod_bset(mod, SRC_ROUTE_CTRL, (1 << id), 0);

return rsnd_src_stop(mod, rdai, io);
return rsnd_src_stop(mod, rdai);
}

static struct rsnd_mod_ops rsnd_src_gen1_ops = {
Expand All @@ -458,12 +449,11 @@ static struct rsnd_mod_ops rsnd_src_gen1_ops = {
* Gen2 functions
*/
static int rsnd_src_set_convert_rate_gen2(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
int ret;

ret = rsnd_src_set_convert_rate(mod, rdai, io);
ret = rsnd_src_set_convert_rate(mod, rdai);
if (ret < 0)
return ret;

Expand All @@ -479,9 +469,9 @@ static int rsnd_src_set_convert_rate_gen2(struct rsnd_mod *mod,
}

static int rsnd_src_set_convert_timing_gen2(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
struct rsnd_src *src = rsnd_mod_to_src(mod);
u32 convert_rate = rsnd_src_convert_rate(src);
Expand All @@ -498,8 +488,7 @@ static int rsnd_src_set_convert_timing_gen2(struct rsnd_mod *mod,
}

static int rsnd_src_probe_gen2(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
struct rsnd_src *src = rsnd_mod_to_src(mod);
Expand All @@ -517,38 +506,35 @@ static int rsnd_src_probe_gen2(struct rsnd_mod *mod,
}

static int rsnd_src_remove_gen2(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
rsnd_dma_quit(rsnd_mod_to_priv(mod), rsnd_mod_to_dma(mod));

return 0;
}

static int rsnd_src_init_gen2(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
int ret;

ret = rsnd_src_init(mod, rdai, io);
ret = rsnd_src_init(mod, rdai);
if (ret < 0)
return ret;

ret = rsnd_src_set_convert_rate_gen2(mod, rdai, io);
ret = rsnd_src_set_convert_rate_gen2(mod, rdai);
if (ret < 0)
return ret;

ret = rsnd_src_set_convert_timing_gen2(mod, rdai, io);
ret = rsnd_src_set_convert_timing_gen2(mod, rdai);
if (ret < 0)
return ret;

return 0;
}

static int rsnd_src_start_gen2(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_src *src = rsnd_mod_to_src(mod);

Expand All @@ -557,12 +543,11 @@ static int rsnd_src_start_gen2(struct rsnd_mod *mod,
rsnd_mod_write(mod, SSI_CTRL, 0x1);
rsnd_mod_write(mod, SRC_CTRL, 0x11);

return rsnd_src_start(mod, rdai, io);
return rsnd_src_start(mod, rdai);
}

static int rsnd_src_stop_gen2(struct rsnd_mod *mod,
struct rsnd_dai *rdai,
struct rsnd_dai_stream *io)
struct rsnd_dai *rdai)
{
struct rsnd_src *src = rsnd_mod_to_src(mod);

Expand All @@ -571,7 +556,7 @@ static int rsnd_src_stop_gen2(struct rsnd_mod *mod,

rsnd_dma_stop(rsnd_mod_to_dma(&src->mod));

return rsnd_src_stop(mod, rdai, io);
return rsnd_src_stop(mod, rdai);
}

static struct rsnd_mod_ops rsnd_src_gen2_ops = {
Expand Down
Loading

0 comments on commit b42fccf

Please sign in to comment.