diff options
author | Shengjiu Wang <shengjiu.wang@nxp.com> | 2017-12-04 13:00:50 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:29:37 +0800 |
commit | 1f5a6bb23f5d985d871ce830a1519c293f5b682d (patch) | |
tree | e0a76ceb444bf5b9edb3134c3734c542ac6eb324 | |
parent | 90a158e527e78f6a24f361206e7bec41c5f95e21 (diff) |
MLK-15985-1: ASoC: fsl_ssi: remove the wrong fix for S20_3LE
This reverts commit 6ce4e9c184b7 ("MLK-15068: ASoC: fsl_ssi: fix the noise
issue with S20_3LE Mono bitsream")
The fix in MLK-15068 can't fix the mono noise issue, for using the
physical width imply that the sample with is 24, but the
CCSR_SSI_SxCCR_WL still using the 20 bit, the unalignment cause noise.
Or if change the CCSR_SSI_SxCCR_WL to 24bit, the volume is lower
for 24bit imply that the sample is shift 4bit right.
So the correct way is to change the mclk frequency in dts.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
-rw-r--r-- | sound/soc/fsl/fsl_ssi.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c index 65ce356a2e29..752b4af5f648 100644 --- a/sound/soc/fsl/fsl_ssi.c +++ b/sound/soc/fsl/fsl_ssi.c @@ -722,23 +722,17 @@ static int fsl_ssi_set_bclk(struct snd_pcm_substream *substream, u64 sub, savesub = 100000; unsigned int freq; bool baudclk_is_used; - snd_pcm_format_t sample_format = params_format(hw_params); /* Prefer the explicitly set bitclock frequency */ if (ssi_private->bitclk_freq) freq = ssi_private->bitclk_freq; else { - if (params_channels(hw_params) == 1) { + if (params_channels(hw_params) == 1) freq = 2 * params_width(hw_params) * params_rate(hw_params); - - if (sample_format == SNDRV_PCM_FORMAT_S20_3LE) - freq = 2 * params_physical_width(hw_params) * - params_rate(hw_params); - } else { + else freq = params_channels(hw_params) * 32 * params_rate(hw_params); - } } /* Don't apply it to any non-baudclk circumstance */ |