ASoC: rsnd: ssi: 24bit data needs right-aligned settings
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tue, 17 Nov 2015 08:28:11 +0000 (08:28 +0000)
committerMark Brown <broonie@kernel.org>
Tue, 17 Nov 2015 11:43:46 +0000 (11:43 +0000)
Data left/right aligned is controlled by PDTA bit on SSICR.
But default is left-aligned. Thus 24bit sound will be very small sound
without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/ssi.c

index 3e814711f301e421c2064133be14adf30e013b37..60ef074082e83f61e92cde1a95222d2bdace4467 100644 (file)
@@ -39,6 +39,7 @@
 #define        SCKP            (1 << 13)       /* Serial Bit Clock Polarity */
 #define        SWSP            (1 << 12)       /* Serial WS Polarity */
 #define        SDTA            (1 << 10)       /* Serial Data Alignment */
+#define        PDTA            (1 <<  9)       /* Parallel Data Alignment */
 #define        DEL             (1 <<  8)       /* Serial Data Delay */
 #define        CKDV(v)         (v <<  4)       /* Serial Clock Division Ratio */
 #define        TRMD            (1 <<  1)       /* Transmit/Receive Mode Select */
@@ -274,7 +275,7 @@ static int rsnd_ssi_init(struct rsnd_mod *mod,
        if (rsnd_ssi_is_parent(mod, io))
                return 0;
 
-       cr = FORCE;
+       cr = FORCE | PDTA;
 
        /*
         * always use 32bit system word for easy clock calculation.