summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorJerome Brunet <jbrunet@baylibre.com>2019-06-13 13:42:32 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-07-26 09:14:07 +0200
commit1fb3ce14f28d729af550e731254ff77a77ccce1a (patch)
treef3effb21fc5913f553c7f593953b38c0c246a7df /sound
parent32df4043aed443d1232dc5a4c9d585c8223541c5 (diff)
downloadlinux-stable-1fb3ce14f28d729af550e731254ff77a77ccce1a.tar.gz
linux-stable-1fb3ce14f28d729af550e731254ff77a77ccce1a.tar.bz2
linux-stable-1fb3ce14f28d729af550e731254ff77a77ccce1a.zip
ASoC: meson: axg-tdm: fix sample clock inversion
[ Upstream commit cb36ff785e868992e96e8b9e5a0c2822b680a9e2 ] The content of SND_SOC_DAIFMT_FORMAT_MASK is a number, not a bitfield, so the test to check if the format is i2s is wrong. Because of this the clock setting may be wrong. For example, the sample clock gets inverted in DSP B mode, when it should not. Fix the lrclk invert helper function Fixes: 1a11d88f499c ("ASoC: meson: add tdm formatter base driver") Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/meson/axg-tdm.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/soc/meson/axg-tdm.h b/sound/soc/meson/axg-tdm.h
index e578b6f40a07..5774ce0916d4 100644
--- a/sound/soc/meson/axg-tdm.h
+++ b/sound/soc/meson/axg-tdm.h
@@ -40,7 +40,7 @@ struct axg_tdm_iface {
static inline bool axg_tdm_lrclk_invert(unsigned int fmt)
{
- return (fmt & SND_SOC_DAIFMT_I2S) ^
+ return ((fmt & SND_SOC_DAIFMT_FORMAT_MASK) == SND_SOC_DAIFMT_I2S) ^
!!(fmt & (SND_SOC_DAIFMT_IB_IF | SND_SOC_DAIFMT_NB_IF));
}