|
@@ -304,13 +304,6 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
|
- /* TDM 4 slots 24 bit, set Rx & Tx bitmask to 4 active slots */
|
|
|
- ret = snd_soc_dai_set_tdm_slot(codec_dai, 0xF, 0xF, 4, 24);
|
|
|
- if (ret < 0) {
|
|
|
- dev_err(runtime->dev, "can't set codec TDM slot %d\n", ret);
|
|
|
- return ret;
|
|
|
- }
|
|
|
-
|
|
|
if (ctx->acpi_card->codec_type == CODEC_TYPE_RT5650)
|
|
|
jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
|
|
|
SND_JACK_BTN_0 | SND_JACK_BTN_1 |
|
|
@@ -377,7 +370,17 @@ static int cht_codec_fixup(struct snd_soc_pcm_runtime *rtd,
|
|
|
*/
|
|
|
ret = snd_soc_dai_set_fmt(rtd->cpu_dai,
|
|
|
SND_SOC_DAIFMT_I2S |
|
|
|
- SND_SOC_DAIFMT_NB_IF |
|
|
|
+ SND_SOC_DAIFMT_NB_NF |
|
|
|
+ SND_SOC_DAIFMT_CBS_CFS
|
|
|
+ );
|
|
|
+ if (ret < 0) {
|
|
|
+ dev_err(rtd->dev, "can't set format to I2S, err %d\n", ret);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ ret = snd_soc_dai_set_fmt(rtd->codec_dai,
|
|
|
+ SND_SOC_DAIFMT_I2S |
|
|
|
+ SND_SOC_DAIFMT_NB_NF |
|
|
|
SND_SOC_DAIFMT_CBS_CFS
|
|
|
);
|
|
|
if (ret < 0) {
|
|
@@ -396,6 +399,24 @@ static int cht_codec_fixup(struct snd_soc_pcm_runtime *rtd,
|
|
|
/* set SSP2 to 24-bit */
|
|
|
params_set_format(params, SNDRV_PCM_FORMAT_S24_LE);
|
|
|
|
|
|
+ /*
|
|
|
+ * Default mode for SSP configuration is TDM 4 slot
|
|
|
+ */
|
|
|
+ ret = snd_soc_dai_set_fmt(rtd->codec_dai,
|
|
|
+ SND_SOC_DAIFMT_DSP_B |
|
|
|
+ SND_SOC_DAIFMT_IB_NF |
|
|
|
+ SND_SOC_DAIFMT_CBS_CFS);
|
|
|
+ if (ret < 0) {
|
|
|
+ dev_err(rtd->dev, "can't set format to TDM %d\n", ret);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* TDM 4 slots 24 bit, set Rx & Tx bitmask to 4 active slots */
|
|
|
+ ret = snd_soc_dai_set_tdm_slot(rtd->codec_dai, 0xF, 0xF, 4, 24);
|
|
|
+ if (ret < 0) {
|
|
|
+ dev_err(rtd->dev, "can't set codec TDM slot %d\n", ret);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
@@ -458,8 +479,6 @@ static struct snd_soc_dai_link cht_dailink[] = {
|
|
|
.no_pcm = 1,
|
|
|
.codec_dai_name = "rt5645-aif1",
|
|
|
.codec_name = "i2c-10EC5645:00",
|
|
|
- .dai_fmt = SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_IB_NF
|
|
|
- | SND_SOC_DAIFMT_CBS_CFS,
|
|
|
.init = cht_codec_init,
|
|
|
.be_hw_params_fixup = cht_codec_fixup,
|
|
|
.nonatomic = true,
|