Skip to contentSkip to conversation

ASoC: rt5677: Add the slot_width "25" support in the TDM mode

PATCH Superseded Oder Chiou 2 participants 2 messages Jan 12, 2015

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Oder Chiou

author maintainer
#0 lore raw

PATCH 1/1 ASoC: rt5677: Add the slot_width "25" support in the TDM mode

Add the slot_width "25" support in the TDM mode for the Intel platform.

---
 sound/soc/codecs/rt5677.c | 6 ++++++
 1 file changed, 6 insertions(+)
sound/soc/codecs/rt5677.c +6 -0
index 32c368c..af34ffc 100644
@@ -4123,6 +4123,7 @@ static int rt5677_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
 		val |= (1 << 8);
 		break;
 	case 24:
+	case 25:
 		val |= (2 << 8);
 		break;
 	case 32:
@@ -4136,9 +4137,14 @@ static int rt5677_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
 	switch (dai->id) {
 	case RT5677_AIF1:
 		snd_soc_update_bits(codec, RT5677_TDM1_CTRL1, 0x1f00, val);
+		if (slot_width == 25)
+			snd_soc_update_bits(codec, RT5677_DIG_MISC, 0x8000,
+				0x8000);
 		break;
 	case RT5677_AIF2:
 		snd_soc_update_bits(codec, RT5677_TDM2_CTRL1, 0x1f00, val);
+		if (slot_width == 25)
+			snd_soc_update_bits(codec, RT5677_DIG_MISC, 0x80, 0x80);
 		break;
 	default:
 		break;
Signature · 1 line
1.8.1.1.439.g50a6b54
maintainer
#1 lore raw

sound/soc/codecs/rt5677.c static int rt5677_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask, · line 4148

Quoted 7 lines · Oder Chiou

Add the slot_width "25" support in the TDM mode for the Intel platform.

sound/soc/codecs/rt5677.c +2 -0
 	case RT5677_AIF2:
 		snd_soc_update_bits(codec, RT5677_TDM2_CTRL1, 0x1f00, val);
+		if (slot_width == 25)
+			snd_soc_update_bits(codec, RT5677_DIG_MISC, 0x80, 0x80);
 		break;

This looks good but I'd expect to see something which clears this bit if we're not using a slot width of 25 in case someone comes up with a use case that changes formats at runtime (relatively unlikely, but better safe than sorry).