mirror of https://gitee.com/openkylin/linux.git
ASoC: wm8978: pll incorrectly configured when codec is master
When MCLK is supplied externally and BCLK and LRC are configured as outputs (codec is master), the PLL values are only calculated correctly on the first transmission. On subsequent transmissions, at differenct sample rates, the wrong PLL values are used. Test for f_opclk instead of f_pllout to determine if the PLL values are needed. Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
This commit is contained in:
parent
8f0d8163b5
commit
55c6f4cb6e
|
@ -782,7 +782,7 @@ static int wm8978_hw_params(struct snd_pcm_substream *substream,
|
||||||
wm8978->mclk_idx = -1;
|
wm8978->mclk_idx = -1;
|
||||||
f_sel = wm8978->f_mclk;
|
f_sel = wm8978->f_mclk;
|
||||||
} else {
|
} else {
|
||||||
if (!wm8978->f_pllout) {
|
if (!wm8978->f_opclk) {
|
||||||
/* We only enter here, if OPCLK is not used */
|
/* We only enter here, if OPCLK is not used */
|
||||||
int ret = wm8978_configure_pll(codec);
|
int ret = wm8978_configure_pll(codec);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
|
Loading…
Reference in New Issue