Commit 5b64c173 authored by Adam Thomson's avatar Adam Thomson Committed by Mark Brown

ASoC: fsl_ssi: Fix checking of dai format for AC97 mode

Current code incorrectly treats dai format for AC97 as bit mask
whereas it's actually an integer value. This causes DAI formats
other than AC97 (e.g. DSP_B) to trigger AC97 related code,
which is incorrect and breaks functionality. This patch fixes
the code to correctly compare values to determine AC97 or not.
Signed-off-by: default avatarAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
Acked-by: default avatarTimur Tabi <timur@tabi.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 6ff33f39
...@@ -249,7 +249,8 @@ MODULE_DEVICE_TABLE(of, fsl_ssi_ids); ...@@ -249,7 +249,8 @@ MODULE_DEVICE_TABLE(of, fsl_ssi_ids);
static bool fsl_ssi_is_ac97(struct fsl_ssi_private *ssi_private) static bool fsl_ssi_is_ac97(struct fsl_ssi_private *ssi_private)
{ {
return !!(ssi_private->dai_fmt & SND_SOC_DAIFMT_AC97); return (ssi_private->dai_fmt & SND_SOC_DAIFMT_FORMAT_MASK) ==
SND_SOC_DAIFMT_AC97;
} }
static bool fsl_ssi_is_i2s_master(struct fsl_ssi_private *ssi_private) static bool fsl_ssi_is_i2s_master(struct fsl_ssi_private *ssi_private)
...@@ -947,7 +948,7 @@ static int _fsl_ssi_set_dai_fmt(struct device *dev, ...@@ -947,7 +948,7 @@ static int _fsl_ssi_set_dai_fmt(struct device *dev,
CCSR_SSI_SCR_TCH_EN); CCSR_SSI_SCR_TCH_EN);
} }
if (fmt & SND_SOC_DAIFMT_AC97) if ((fmt & SND_SOC_DAIFMT_FORMAT_MASK) == SND_SOC_DAIFMT_AC97)
fsl_ssi_setup_ac97(ssi_private); fsl_ssi_setup_ac97(ssi_private);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment