summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Moysan2019-02-26 14:51:05 +0100
committerMark Brown2019-02-26 16:36:43 +0100
commit0c4c68d6fa1bae74d450e50823c24fcc3cd0b171 (patch)
tree110ec393a4ceffe5e52c18bb5051b2b683cd1549
parentASoC: stm32: i2s: fix IRQ clearing (diff)
downloadkernel-qcow2-linux-0c4c68d6fa1bae74d450e50823c24fcc3cd0b171.tar.gz
kernel-qcow2-linux-0c4c68d6fa1bae74d450e50823c24fcc3cd0b171.tar.xz
kernel-qcow2-linux-0c4c68d6fa1bae74d450e50823c24fcc3cd0b171.zip
ASoC: stm32: i2s: fix 16 bit format support
I2S supports 16 bits data in 32 channel length. However the expected driver behavior, is to set channel length to 16 bits when data format is 16 bits. Signed-off-by: Olivier Moysan <olivier.moysan@st.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/stm/stm32_i2s.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/soc/stm/stm32_i2s.c b/sound/soc/stm/stm32_i2s.c
index 339cd4715b2e..7d4c67433916 100644
--- a/sound/soc/stm/stm32_i2s.c
+++ b/sound/soc/stm/stm32_i2s.c
@@ -501,7 +501,7 @@ static int stm32_i2s_configure(struct snd_soc_dai *cpu_dai,
switch (format) {
case 16:
cfgr = I2S_CGFR_DATLEN_SET(I2S_I2SMOD_DATLEN_16);
- cfgr_mask = I2S_CGFR_DATLEN_MASK;
+ cfgr_mask = I2S_CGFR_DATLEN_MASK | I2S_CGFR_CHLEN;
break;
case 32:
cfgr = I2S_CGFR_DATLEN_SET(I2S_I2SMOD_DATLEN_32) |