aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2016-10-26 21:05:21 -0400
committerMark Brown <broonie@kernel.org>2016-10-27 06:14:34 -0400
commit67923f779b8d9d210c5ec98ffb68d9fe5a68df18 (patch)
tree7836d28212e6141a99fcba8766cebcf87eec2975
parent814efe3ed72d1cad926e21b8d0869a1ea74bb9dd (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.c7
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)) {