Commit adcf7d5e authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: rsnd: tidyup rsnd_ssi_master_clk_start() parameter

Renesas sound has SRC (= Sampling Rate Converter),
but, the HW implementation depends on its generation.
It was part of SRU on Gen1, and SCU on Gen2.
This SCU needs DMA transfer to use it.
Current rsnd driver is using it as DMA transfer buffer
(= no rate convert), and Gen1 is only supported at this point.

This patch cleanup it with focusing about SRC and Gen2 part.

ssi clock which is calculated from rsnd_ssi_master_clk_start()
should have flexibility since Renesas sound has
SRC (= Sampling Rate Converter).
But current implementation is using runtime->rate directly.
This patch tidyup rsnd_ssi_master_clk_start() parameter
as preparation of future SRC support
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 99feec32
...@@ -187,9 +187,10 @@ static void rsnd_ssi_status_check(struct rsnd_mod *mod, ...@@ -187,9 +187,10 @@ static void rsnd_ssi_status_check(struct rsnd_mod *mod,
} }
static int rsnd_ssi_master_clk_start(struct rsnd_ssi *ssi, static int rsnd_ssi_master_clk_start(struct rsnd_ssi *ssi,
unsigned int rate) struct rsnd_dai_stream *io)
{ {
struct rsnd_priv *priv = rsnd_mod_to_priv(&ssi->mod); struct rsnd_priv *priv = rsnd_mod_to_priv(&ssi->mod);
struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
struct device *dev = rsnd_priv_to_dev(priv); struct device *dev = rsnd_priv_to_dev(priv);
int i, j, ret; int i, j, ret;
int adg_clk_div_table[] = { int adg_clk_div_table[] = {
...@@ -199,6 +200,7 @@ static int rsnd_ssi_master_clk_start(struct rsnd_ssi *ssi, ...@@ -199,6 +200,7 @@ static int rsnd_ssi_master_clk_start(struct rsnd_ssi *ssi,
1, 2, 4, 8, 16, 6, 12, 1, 2, 4, 8, 16, 6, 12,
}; };
unsigned int main_rate; unsigned int main_rate;
unsigned int rate = runtime->rate;
/* /*
* Find best clock, and try to start ADG * Find best clock, and try to start ADG
...@@ -251,14 +253,10 @@ static void rsnd_ssi_hw_start(struct rsnd_ssi *ssi, ...@@ -251,14 +253,10 @@ static void rsnd_ssi_hw_start(struct rsnd_ssi *ssi,
clk_enable(ssi->clk); clk_enable(ssi->clk);
if (rsnd_rdai_is_clk_master(rdai)) { if (rsnd_rdai_is_clk_master(rdai)) {
struct snd_pcm_runtime *runtime;
runtime = rsnd_io_to_runtime(io);
if (rsnd_ssi_clk_from_parent(ssi)) if (rsnd_ssi_clk_from_parent(ssi))
rsnd_ssi_hw_start(ssi->parent, rdai, io); rsnd_ssi_hw_start(ssi->parent, rdai, io);
else else
rsnd_ssi_master_clk_start(ssi, runtime->rate); rsnd_ssi_master_clk_start(ssi, io);
} }
} }
......
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