diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2016-10-26 21:05:21 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-10-27 06:14:34 -0400 |
commit | 67923f779b8d9d210c5ec98ffb68d9fe5a68df18 (patch) | |
tree | 7836d28212e6141a99fcba8766cebcf87eec2975 | |
parent | 814efe3ed72d1cad926e21b8d0869a1ea74bb9dd (diff) |
ASoC: rsnd: enable SRC sync even FIN = FOUT
Current SRC (= Sampling Rate Converter) is supporting
SYNC mode and ASYNC mode. Current src.c cares SRC if FIN != FOUT.
Here, SYNC mode will be used for tweak, so it will be used
even FIN = FOUT. This patch enables SRC sync in such situation
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Tested-by: Yuichi Takagi <yuichi.takagi.uh@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | sound/soc/sh/rcar/src.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/soc/sh/rcar/src.c b/sound/soc/sh/rcar/src.c index aa24258b9b14..3a8f65bd1bf9 100644 --- a/sound/soc/sh/rcar/src.c +++ b/sound/soc/sh/rcar/src.c | |||
@@ -189,6 +189,7 @@ static void rsnd_src_set_convert_rate(struct rsnd_dai_stream *io, | |||
189 | struct rsnd_priv *priv = rsnd_mod_to_priv(mod); | 189 | struct rsnd_priv *priv = rsnd_mod_to_priv(mod); |
190 | struct device *dev = rsnd_priv_to_dev(priv); | 190 | struct device *dev = rsnd_priv_to_dev(priv); |
191 | struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); | 191 | struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); |
192 | int use_src = 0; | ||
192 | u32 fin, fout; | 193 | u32 fin, fout; |
193 | u32 ifscr, fsrate, adinr; | 194 | u32 ifscr, fsrate, adinr; |
194 | u32 cr, route; | 195 | u32 cr, route; |
@@ -214,6 +215,8 @@ static void rsnd_src_set_convert_rate(struct rsnd_dai_stream *io, | |||
214 | return; | 215 | return; |
215 | } | 216 | } |
216 | 217 | ||
218 | use_src = (fin != fout) | rsnd_src_sync_is_enabled(mod); | ||
219 | |||
217 | /* | 220 | /* |
218 | * SRC_ADINR | 221 | * SRC_ADINR |
219 | */ | 222 | */ |
@@ -225,7 +228,7 @@ static void rsnd_src_set_convert_rate(struct rsnd_dai_stream *io, | |||
225 | */ | 228 | */ |
226 | ifscr = 0; | 229 | ifscr = 0; |
227 | fsrate = 0; | 230 | fsrate = 0; |
228 | if (fin != fout) { | 231 | if (use_src) { |
229 | u64 n; | 232 | u64 n; |
230 | 233 | ||
231 | ifscr = 1; | 234 | ifscr = 1; |
@@ -239,7 +242,7 @@ static void rsnd_src_set_convert_rate(struct rsnd_dai_stream *io, | |||
239 | */ | 242 | */ |
240 | cr = 0x00011110; | 243 | cr = 0x00011110; |
241 | route = 0x0; | 244 | route = 0x0; |
242 | if (fin != fout) { | 245 | if (use_src) { |
243 | route = 0x1; | 246 | route = 0x1; |
244 | 247 | ||
245 | if (rsnd_src_sync_is_enabled(mod)) { | 248 | if (rsnd_src_sync_is_enabled(mod)) { |