summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorShengjiu Wang <shengjiu.wang@freescale.com>2015-04-15 12:33:06 +0800
committerJason Liu <r64343@freescale.com>2015-05-08 16:34:39 +0800
commite1e5d1e67ed81be81d7fc376cf54d44bd583c992 (patch)
treef32205da578df6220dbe4aa2dc2b4d540c9f3977 /sound
parenteb53dc249f9f8c4c32b7c2d2533e3d88a7d7c54c (diff)
MLK-10661: ASoC: imx_wm8960: HDMI has noise after playback with wm8960
The root cause is hardware issue. In imx7d-sdb hdmi, wm8960 use the same SAI interface. After playback with wm8960, the Frame clock voltage doesn't become 0v, wm8960 will introduce noise to frame clock. This patch is a workaround to set wm8960 to slave mode, remove interference to I2S signal. Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/fsl/imx-wm8960.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/soc/fsl/imx-wm8960.c b/sound/soc/fsl/imx-wm8960.c
index e77136ef7ee5..6184a276456f 100644
--- a/sound/soc/fsl/imx-wm8960.c
+++ b/sound/soc/fsl/imx-wm8960.c
@@ -195,8 +195,10 @@ 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])
+ if (data->is_codec_master && !data->is_stream_in_use[!tx]) {
snd_soc_dai_set_pll(codec_dai, 0, 0, 0, 0);
+ snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF);
+ }
return 0;
}