From f61fa4e1ecf6f75e203a1e3757db52d312af5c46 Mon Sep 17 00:00:00 2001 From: Shengjiu Wang Date: Mon, 21 Mar 2016 10:08:11 +0800 Subject: [PATCH] MLK-12464-1: ASoC: fsl: imx-wm8960: Fix no clock after suspend/resume randomly After suspend and resume, the wm8960 codec will change the state from BIAS_OFF to BIAS_ON, in this time, the hw_free is called, the PLL will be diabled, and next instance is started in rapid sequence, hw_params is called But PLL is not enabled, because the bias state is not BIAS_ON. As PLL is disabled in BIAS_ON->BIAS_STANDBY, so don't need to disable pll in hw_free of machine driver. Signed-off-by: Shengjiu Wang --- sound/soc/fsl/imx-wm8960.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sound/soc/fsl/imx-wm8960.c b/sound/soc/fsl/imx-wm8960.c index 8902f6e16a08..5a59242cd6f7 100644 --- a/sound/soc/fsl/imx-wm8960.c +++ b/sound/soc/fsl/imx-wm8960.c @@ -273,9 +273,7 @@ static int imx_hifi_hw_free(struct snd_pcm_substream *substream) data->is_stream_in_use[tx] = false; - /* Power down PLL to save power*/ if (data->is_codec_master && !data->is_stream_in_use[!tx]) { - snd_soc_dai_set_pll(codec_dai, 0, 0, 0, 0); ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF); if (ret) dev_warn(dev, "failed to set codec dai fmt: %d\n", ret); -- 2.17.1