summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2018-10-16 21:55:37 -0400
committerMark Brown <broonie@kernel.org>2018-10-17 15:01:30 -0400
commit6817d7593f3e3c8a9c11e7a07cb5646c70371f0a (patch)
treed4fecbb02d9e45bacbc20e55066ec211b97b5e20 /sound
parent4e9e07c5675706983ed649cfb92521a4d8aa1d6d (diff)
ASoC: rsnd: enable TDM settings for SSI parent
Some SSIs are sharing each pins (= WS/CLK pin for playback/capture). Then, SSI parent needs control WS/CLK setting for SSI slave. In such case, SSI parent needs TDM settings if SSI slave is working as TDM mode. But it is not cared in current driver. It can't capture TDM sound without this patch if SSIs were pin sharing. This patch is tested on R-Car H3 ulcb-kf board, SSI3/4 with TDM sound. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/sh/rcar/ssi.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c
index 3adcc4f778f7..b42a0e0feab7 100644
--- a/sound/soc/sh/rcar/ssi.c
+++ b/sound/soc/sh/rcar/ssi.c
@@ -400,6 +400,17 @@ static void rsnd_ssi_config_init(struct rsnd_mod *mod,
400 cr_own |= DEL; 400 cr_own |= DEL;
401 401
402 /* 402 /*
403 * TDM Mode
404 * see
405 * rsnd_ssiu_init_gen2()
406 */
407 wsr = ssi->wsr;
408 if (is_tdm) {
409 wsr |= WS_MODE;
410 cr_own |= CHNL_8;
411 }
412
413 /*
403 * We shouldn't exchange SWSP after running. 414 * We shouldn't exchange SWSP after running.
404 * This means, parent needs to care it. 415 * This means, parent needs to care it.
405 */ 416 */
@@ -429,16 +440,6 @@ static void rsnd_ssi_config_init(struct rsnd_mod *mod,
429 cr_mode = DIEN; /* PIO : enable Data interrupt */ 440 cr_mode = DIEN; /* PIO : enable Data interrupt */
430 } 441 }
431 442
432 /*
433 * TDM Extend Mode
434 * see
435 * rsnd_ssiu_init_gen2()
436 */
437 wsr = ssi->wsr;
438 if (is_tdm) {
439 wsr |= WS_MODE;
440 cr_own |= CHNL_8;
441 }
442init_end: 443init_end:
443 ssi->cr_own = cr_own; 444 ssi->cr_own = cr_own;
444 ssi->cr_mode = cr_mode; 445 ssi->cr_mode = cr_mode;