diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/intel/cht_bsw_rt5672.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sound/soc/intel/cht_bsw_rt5672.c b/sound/soc/intel/cht_bsw_rt5672.c index a406c6104897..ff016621583a 100644 --- a/sound/soc/intel/cht_bsw_rt5672.c +++ b/sound/soc/intel/cht_bsw_rt5672.c | |||
@@ -140,6 +140,7 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime) | |||
140 | { | 140 | { |
141 | int ret; | 141 | int ret; |
142 | struct snd_soc_dai *codec_dai = runtime->codec_dai; | 142 | struct snd_soc_dai *codec_dai = runtime->codec_dai; |
143 | struct snd_soc_codec *codec = codec_dai->codec; | ||
143 | 144 | ||
144 | /* TDM 4 slots 24 bit, set Rx & Tx bitmask to 4 active slots */ | 145 | /* TDM 4 slots 24 bit, set Rx & Tx bitmask to 4 active slots */ |
145 | ret = snd_soc_dai_set_tdm_slot(codec_dai, 0xF, 0xF, 4, 24); | 146 | ret = snd_soc_dai_set_tdm_slot(codec_dai, 0xF, 0xF, 4, 24); |
@@ -148,6 +149,19 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime) | |||
148 | return ret; | 149 | return ret; |
149 | } | 150 | } |
150 | 151 | ||
152 | /* Select codec ASRC clock source to track I2S1 clock, because codec | ||
153 | * is in slave mode and 100fs I2S format (BCLK = 100 * LRCLK) cannot | ||
154 | * be supported by RT5672. Otherwise, ASRC will be disabled and cause | ||
155 | * noise. | ||
156 | */ | ||
157 | rt5670_sel_asrc_clk_src(codec, | ||
158 | RT5670_DA_STEREO_FILTER | ||
159 | | RT5670_DA_MONO_L_FILTER | ||
160 | | RT5670_DA_MONO_R_FILTER | ||
161 | | RT5670_AD_STEREO_FILTER | ||
162 | | RT5670_AD_MONO_L_FILTER | ||
163 | | RT5670_AD_MONO_R_FILTER, | ||
164 | RT5670_CLK_SEL_I2S1_ASRC); | ||
151 | return 0; | 165 | return 0; |
152 | } | 166 | } |
153 | 167 | ||