|
@@ -123,6 +123,7 @@ enum {
|
|
|
#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
|
|
|
#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
|
|
|
#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
|
|
|
+#define TERT_TDM_TX_TEXT "TERT_TDM_TX_0"
|
|
|
|
|
|
#define LSM_FUNCTION_TEXT "LSM Function"
|
|
|
static const char * const lsm_port_text[] = {
|
|
@@ -131,7 +132,8 @@ static const char * const lsm_port_text[] = {
|
|
|
SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
|
|
|
TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
|
|
|
INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
|
|
|
- VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
|
|
|
+ VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT,
|
|
|
+ TERT_TDM_TX_TEXT
|
|
|
};
|
|
|
|
|
|
struct msm_pcm_route_bdai_pp_params {
|
|
@@ -3032,6 +3034,9 @@ static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
|
|
|
case 15:
|
|
|
lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
|
|
|
break;
|
|
|
+ case 16:
|
|
|
+ lsm_port = AFE_PORT_ID_TERTIARY_TDM_TX;
|
|
|
+ break;
|
|
|
default:
|
|
|
pr_err("Default lsm port");
|
|
|
break;
|
|
@@ -3049,7 +3054,7 @@ static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
|
|
|
u16 port_id;
|
|
|
enum afe_mad_type mad_type;
|
|
|
|
|
|
- pr_debug("%s: enter\n", __func__);
|
|
|
+ pr_debug("%s: id name %s\n", __func__, kcontrol->id.name);
|
|
|
for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
|
|
|
if (!strnstr(kcontrol->id.name, lsm_port_text[i],
|
|
|
strlen(lsm_port_text[i])))
|
|
@@ -3076,14 +3081,18 @@ static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
|
|
|
strlen(lsm_port_text[10])))
|
|
|
port_id = AFE_PORT_ID_INT3_MI2S_TX;
|
|
|
|
|
|
- if (strnstr(kcontrol->id.name, lsm_port_text[13],
|
|
|
- strlen(lsm_port_text[13])))
|
|
|
- port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
|
|
|
-
|
|
|
if (strnstr(kcontrol->id.name, lsm_port_text[14],
|
|
|
strlen(lsm_port_text[14])))
|
|
|
+ port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
|
|
|
+
|
|
|
+ if (strnstr(kcontrol->id.name, lsm_port_text[15],
|
|
|
+ strlen(lsm_port_text[15])))
|
|
|
port_id = AFE_PORT_ID_QUINARY_TDM_TX;
|
|
|
|
|
|
+ if (strnstr(kcontrol->id.name, lsm_port_text[16],
|
|
|
+ strlen(lsm_port_text[16])))
|
|
|
+ port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
|
|
|
+
|
|
|
mad_type = afe_port_get_mad_type(port_id);
|
|
|
pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
|
|
|
mad_type);
|
|
@@ -3117,7 +3126,7 @@ static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
|
|
|
u16 port_id;
|
|
|
enum afe_mad_type mad_type;
|
|
|
|
|
|
- pr_debug("%s: enter\n", __func__);
|
|
|
+ pr_debug("%s: id name %s\n", __func__, kcontrol->id.name);
|
|
|
for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
|
|
|
if (strnstr(kcontrol->id.name, lsm_port_text[i],
|
|
|
strlen(lsm_port_text[i])))
|
|
@@ -3164,14 +3173,18 @@ static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
|
|
|
strlen(lsm_port_text[10])))
|
|
|
port_id = AFE_PORT_ID_INT3_MI2S_TX;
|
|
|
|
|
|
- if (strnstr(kcontrol->id.name, lsm_port_text[13],
|
|
|
- strlen(lsm_port_text[13])))
|
|
|
- port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
|
|
|
-
|
|
|
if (strnstr(kcontrol->id.name, lsm_port_text[14],
|
|
|
strlen(lsm_port_text[14])))
|
|
|
+ port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
|
|
|
+
|
|
|
+ if (strnstr(kcontrol->id.name, lsm_port_text[15],
|
|
|
+ strlen(lsm_port_text[15])))
|
|
|
port_id = AFE_PORT_ID_QUINARY_TDM_TX;
|
|
|
|
|
|
+ if (strnstr(kcontrol->id.name, lsm_port_text[16],
|
|
|
+ strlen(lsm_port_text[16])))
|
|
|
+ port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
|
|
|
+
|
|
|
pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
|
|
|
mad_type);
|
|
|
return afe_port_set_mad_type(port_id, mad_type);
|
|
@@ -21007,6 +21020,10 @@ static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_QUIN_TDM_TX_0,
|
|
|
MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
|
|
|
msm_routing_put_listen_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TERT_TDM_TX_0,
|
|
|
+ MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
|
|
|
+ msm_routing_put_listen_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
|
|
@@ -21063,6 +21080,10 @@ static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_QUIN_TDM_TX_0,
|
|
|
MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
|
|
|
msm_routing_put_listen_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TERT_TDM_TX_0,
|
|
|
+ MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
|
|
|
+ msm_routing_put_listen_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
|
|
@@ -21118,6 +21139,10 @@ static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_QUIN_TDM_TX_0,
|
|
|
MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
|
|
|
msm_routing_put_listen_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TERT_TDM_TX_0,
|
|
|
+ MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
|
|
|
+ msm_routing_put_listen_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
|
|
@@ -21173,6 +21198,10 @@ static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_QUIN_TDM_TX_0,
|
|
|
MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
|
|
|
msm_routing_put_listen_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TERT_TDM_TX_0,
|
|
|
+ MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
|
|
|
+ msm_routing_put_listen_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
|
|
@@ -21228,6 +21257,10 @@ static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_QUIN_TDM_TX_0,
|
|
|
MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
|
|
|
msm_routing_put_listen_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TERT_TDM_TX_0,
|
|
|
+ MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
|
|
|
+ msm_routing_put_listen_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
|
|
@@ -21283,6 +21316,10 @@ static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_QUIN_TDM_TX_0,
|
|
|
MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
|
|
|
msm_routing_put_listen_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TERT_TDM_TX_0,
|
|
|
+ MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
|
|
|
+ msm_routing_put_listen_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
|
|
@@ -21338,6 +21375,10 @@ static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_QUIN_TDM_TX_0,
|
|
|
MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
|
|
|
msm_routing_put_listen_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TERT_TDM_TX_0,
|
|
|
+ MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
|
|
|
+ msm_routing_put_listen_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
|
|
@@ -21393,6 +21434,10 @@ static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_QUIN_TDM_TX_0,
|
|
|
MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
|
|
|
msm_routing_put_listen_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TERT_TDM_TX_0,
|
|
|
+ MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
|
|
|
+ msm_routing_put_listen_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
|
|
@@ -21543,6 +21588,8 @@ static const struct snd_kcontrol_new lsm_controls[] = {
|
|
|
msm_routing_lsm_func_get, msm_routing_lsm_func_put),
|
|
|
SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
|
|
|
msm_routing_lsm_func_get, msm_routing_lsm_func_put),
|
|
|
+ SOC_ENUM_EXT(TERT_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
|
|
|
+ msm_routing_lsm_func_get, msm_routing_lsm_func_put),
|
|
|
/* kcontrol of lsm_port */
|
|
|
SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
|
|
|
msm_routing_lsm_port_get,
|
|
@@ -27213,6 +27260,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
|
|
|
{"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
|
|
|
{"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
|
|
|
+ {"LSM1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
|
|
|
{"LSM1_UL_HL", NULL, "LSM1 Mixer"},
|
|
|
|
|
|
{"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
|
|
@@ -27228,6 +27276,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
|
|
|
{"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
|
|
|
{"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
|
|
|
+ {"LSM2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
|
|
|
{"LSM2_UL_HL", NULL, "LSM2 Mixer"},
|
|
|
|
|
|
|
|
@@ -27244,6 +27293,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
|
|
|
{"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
|
|
|
{"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
|
|
|
+ {"LSM3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
|
|
|
{"LSM3_UL_HL", NULL, "LSM3 Mixer"},
|
|
|
|
|
|
|
|
@@ -27260,6 +27310,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
|
|
|
{"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
|
|
|
{"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
|
|
|
+ {"LSM4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
|
|
|
{"LSM4_UL_HL", NULL, "LSM4 Mixer"},
|
|
|
|
|
|
{"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
|
|
@@ -27275,6 +27326,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
|
|
|
{"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
|
|
|
{"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
|
|
|
+ {"LSM5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
|
|
|
{"LSM5_UL_HL", NULL, "LSM5 Mixer"},
|
|
|
|
|
|
{"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
|
|
@@ -27288,6 +27340,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
|
|
|
{"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
|
|
|
{"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
|
|
|
+ {"LSM6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
|
|
|
{"LSM6_UL_HL", NULL, "LSM6 Mixer"},
|
|
|
|
|
|
{"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
|
|
@@ -27301,6 +27354,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
|
|
|
{"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
|
|
|
{"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
|
|
|
+ {"LSM7 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
|
|
|
{"LSM7_UL_HL", NULL, "LSM7 Mixer"},
|
|
|
|
|
|
{"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
|
|
@@ -27314,6 +27368,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
|
|
|
{"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
|
|
|
{"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
|
|
|
+ {"LSM8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
|
|
|
{"LSM8_UL_HL", NULL, "LSM8 Mixer"},
|
|
|
|
|
|
|