OSDN Git Service

ASoC: fsl-asoc-card: Remove fsl_asoc_card_set_bias_level function
authorShengjiu Wang <shengjiu.wang@nxp.com>
Mon, 3 Aug 2020 02:13:31 +0000 (10:13 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 3 Aug 2020 13:17:32 +0000 (14:17 +0100)
commitf36e8edb95734c03134db628afa25ee23b8e0d95
treea62b2e15960d21566e19aa300a79e1fdabd96a4c
parent8e34f1e867b572f1e20b5250c2897fe5f041c99f
ASoC: fsl-asoc-card: Remove fsl_asoc_card_set_bias_level function

With this case:
aplay -Dhw:x 16khz.wav 24khz.wav
There is sound distortion for 24khz.wav. The reason is that setting
PLL of WM8962 with set_bias_level function, the bias level is not
changed when 24khz.wav is played, then the PLL won't be reset, the
clock is not correct, so distortion happens.

The resolution of this issue is to remove fsl_asoc_card_set_bias_level.
Move PLL configuration to hw_params and hw_free.

After removing fsl_asoc_card_set_bias_level, also test WM8960 case,
it can work.

Fixes: 708b4351f08c ("ASoC: fsl: Add Freescale Generic ASoC Sound Card with ASRC support")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/1596420811-16690-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl-asoc-card.c