aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarsha Priya N <harshapriya.n@intel.com>2017-07-27 20:41:25 -0400
committerMark Brown <broonie@kernel.org>2017-07-28 08:42:23 -0400
commit349d63c33a34e39b205cf116d2406e096a029f8b (patch)
tree6cec5a22627cb8b3d536a182dfa422af95e577c2
parentb76e3f933327f9fd9df9a65a2d239e6e350cbee2 (diff)
ASoC: Intel: Enabling ASRC for RT5663 codec on kabylake platform
This patch fixes the cracking noise in rt5663 headphones for kabylake platform by calling rt5663_sel_asrc_clk_src() for RT5663_AD_STEREO_FILTER to set ASRC. The ASRC function is for asynchronous MCLK and LRCK. For RT5663 ASRC should be enabled to support special i2s clock format like Intel's 100fs. ASRC function will track i2s clock and generate a corresponding system clock for codec. Calling this function helps select the clock source for both RT5663_AD_STEREO_FILTER and RT5663_DA_STEREO_FILTER filters which fixes the crackling sound. Signed-off-by: Harsha Priya <harshapriya.n@intel.com> Acked-By: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
index 3fe4a0807095..cfde894d250f 100644
--- a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+++ b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
@@ -319,7 +319,9 @@ static int kabylake_rt5663_hw_params(struct snd_pcm_substream *substream,
319 int ret; 319 int ret;
320 320
321 /* use ASRC for internal clocks, as PLL rate isn't multiple of BCLK */ 321 /* use ASRC for internal clocks, as PLL rate isn't multiple of BCLK */
322 rt5663_sel_asrc_clk_src(codec_dai->codec, RT5663_DA_STEREO_FILTER, 1); 322 rt5663_sel_asrc_clk_src(codec_dai->codec,
323 RT5663_DA_STEREO_FILTER | RT5663_AD_STEREO_FILTER,
324 RT5663_CLK_SEL_I2S1_ASRC);
323 325
324 ret = snd_soc_dai_set_sysclk(codec_dai, 326 ret = snd_soc_dai_set_sysclk(codec_dai,
325 RT5663_SCLK_S_MCLK, 24576000, SND_SOC_CLOCK_IN); 327 RT5663_SCLK_S_MCLK, 24576000, SND_SOC_CLOCK_IN);