summaryrefslogtreecommitdiffstats
path: root/sound/soc/sh/rcar/ssi.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/sh/rcar/ssi.c')
-rw-r--r--sound/soc/sh/rcar/ssi.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c
index 628739f13f99..79c3211a1e7f 100644
--- a/sound/soc/sh/rcar/ssi.c
+++ b/sound/soc/sh/rcar/ssi.c
@@ -265,6 +265,9 @@ static int rsnd_ssi_config_init(struct rsnd_ssi *ssi,
u32 cr_own;
u32 cr_mode;
u32 wsr;
+ int is_tdm;
+
+ is_tdm = (rsnd_get_slot_runtime(io) >= 6) ? 1 : 0;
/*
* always use 32bit system word.
@@ -274,7 +277,7 @@ static int rsnd_ssi_config_init(struct rsnd_ssi *ssi,
if (rdai->bit_clk_inv)
cr_own |= SCKP;
- if (rdai->frm_clk_inv)
+ if (rdai->frm_clk_inv ^ is_tdm)
cr_own |= SWSP;
if (rdai->data_alignment)
cr_own |= SDTA;
@@ -307,7 +310,7 @@ static int rsnd_ssi_config_init(struct rsnd_ssi *ssi,
* rsnd_ssiu_init_gen2()
*/
wsr = ssi->wsr;
- if (rsnd_get_slot_runtime(io) >= 6) {
+ if (is_tdm) {
wsr |= WS_MODE;
cr_own |= CHNL_8;
}
OpenPOWER on IntegriCloud