[alsa-devel] [PATCH] ASoC: Intel: kbl: Enabling ASRC for RT5663 codec on kabylake platform
Naveen M
naveen.m at intel.com
Wed Aug 16 12:47:47 CEST 2017
On Wed, Aug 16, 2017 at 03:55:59PM +0530, Naveen M wrote:
Missed Version tagging, shall repost. Thanks
> From: Harsha Priya N <harshapriya.n at intel.com>
>
> Patch fixes cracking noise in rt5663 headphones for kbl platform by
> calling rt5663_sel_asrc_clk_src() for RT5663_AD_STEREO_FILTER to set
> ASRC.
>
> The ASRC function is for asynchronous MCLK and LRCLK. For RT5663 ASRC
> should be enabled to support pcm format with 100fs.
> ASRC function will track i2s clock and generate corresponding
> system clock for codec. Calling this func helps select 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 at intel.com>
> Signed-off-by: Shruthi Sudhakar <shruthi.sudhakar at intel.com>
> Signed-off-by: Naveen M <naveen.m at intel.com>
>
> diff --git a/sound/soc/intel/boards/kbl_rt5663_max98927.c b/sound/soc/intel/boards/kbl_rt5663_max98927.c
> index f9ba977..29b50e4 100644
> --- a/sound/soc/intel/boards/kbl_rt5663_max98927.c
> +++ b/sound/soc/intel/boards/kbl_rt5663_max98927.c
> @@ -312,11 +312,13 @@ static int kabylake_rt5663_hw_params(struct snd_pcm_substream *substream,
> struct snd_soc_dai *codec_dai = rtd->codec_dai;
> int ret;
>
> - ret = snd_soc_dai_set_sysclk(codec_dai,
> - RT5663_SCLK_S_MCLK, 24576000, SND_SOC_CLOCK_IN);
> /* use ASRC for internal clocks, as PLL rate isn't multiple of BCLK */
> - rt5663_sel_asrc_clk_src(codec_dai->codec, RT5663_DA_STEREO_FILTER, 1);
> + rt5663_sel_asrc_clk_src(codec_dai->codec,
> + RT5663_DA_STEREO_FILTER | RT5663_AD_STEREO_FILTER,
> + RT5663_CLK_SEL_I2S1_ASRC);
>
> + ret = snd_soc_dai_set_sysclk(codec_dai,
> + RT5663_SCLK_S_MCLK, 24576000, SND_SOC_CLOCK_IN);
> if (ret < 0)
> dev_err(rtd->dev, "snd_soc_dai_set_sysclk err = %d\n", ret);
>
> --
> 1.9.1
>
--
More information about the Alsa-devel
mailing list