asoc: Add LSM routing changes for TX_CDC_DMA_TX_3

Add LSM mixer and function related routing changes
for TX_CDC_DMA_TX_3 interface to support SVA.

CRs-Fixed: 2281591
Change-Id: I9ff7e9d51069ec0467c464ddb5c640e533e81d90
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
This commit is contained in:
Aditya Bavanari 2018-08-23 23:45:20 +05:30
parent 67ef04b0ba
commit e9454c6269
2 changed files with 60 additions and 3 deletions

View File

@ -113,6 +113,7 @@ enum {
#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
#define LSM_FUNCTION_TEXT "LSM Function"
static const char * const lsm_port_text[] = {
@ -120,7 +121,8 @@ static const char * const lsm_port_text[] = {
SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_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
INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
TX_CDC_DMA_TX_3_TEXT
};
struct msm_pcm_route_bdai_pp_params {
@ -2664,6 +2666,9 @@ static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
case 12:
lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
break;
case 13:
lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
break;
default:
pr_err("Default lsm port");
break;
@ -2707,6 +2712,10 @@ 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;
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);
@ -2786,6 +2795,10 @@ 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;
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);
@ -15941,6 +15954,10 @@ static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
msm_routing_put_listen_mixer),
SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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[] = {
@ -15985,6 +16002,10 @@ static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
msm_routing_put_listen_mixer),
SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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[] = {
@ -16028,6 +16049,10 @@ static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
msm_routing_put_listen_mixer),
SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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[] = {
@ -16071,6 +16096,10 @@ static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
msm_routing_put_listen_mixer),
SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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[] = {
@ -16114,6 +16143,10 @@ static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
msm_routing_put_listen_mixer),
SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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[] = {
@ -16157,6 +16190,10 @@ static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
msm_routing_put_listen_mixer),
SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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[] = {
@ -16200,6 +16237,10 @@ static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
msm_routing_put_listen_mixer),
SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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[] = {
@ -16243,6 +16284,10 @@ static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
msm_routing_put_listen_mixer),
SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
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 =
@ -16379,6 +16424,8 @@ static const struct snd_kcontrol_new lsm_controls[] = {
msm_routing_lsm_func_get, msm_routing_lsm_func_put),
SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
msm_routing_lsm_func_get, msm_routing_lsm_func_put),
SOC_ENUM_EXT(TX_CDC_DMA_TX_3_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,
@ -21096,6 +21143,7 @@ static const struct snd_soc_dapm_route intercon[] = {
{"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
{"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
{"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
{"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
{"LSM1_UL_HL", NULL, "LSM1 Mixer"},
{"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
@ -21108,6 +21156,7 @@ static const struct snd_soc_dapm_route intercon[] = {
{"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
{"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
{"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
{"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
{"LSM2_UL_HL", NULL, "LSM2 Mixer"},
@ -21121,6 +21170,7 @@ static const struct snd_soc_dapm_route intercon[] = {
{"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
{"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
{"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
{"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
{"LSM3_UL_HL", NULL, "LSM3 Mixer"},
@ -21134,6 +21184,7 @@ static const struct snd_soc_dapm_route intercon[] = {
{"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
{"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
{"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
{"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
{"LSM4_UL_HL", NULL, "LSM4 Mixer"},
{"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
@ -21146,6 +21197,7 @@ static const struct snd_soc_dapm_route intercon[] = {
{"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
{"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
{"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
{"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
{"LSM5_UL_HL", NULL, "LSM5 Mixer"},
{"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
@ -21156,6 +21208,7 @@ static const struct snd_soc_dapm_route intercon[] = {
{"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
{"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
{"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
{"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
{"LSM6_UL_HL", NULL, "LSM6 Mixer"},
{"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
@ -21166,6 +21219,7 @@ static const struct snd_soc_dapm_route intercon[] = {
{"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
{"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
{"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
{"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
{"LSM7_UL_HL", NULL, "LSM7 Mixer"},
{"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
@ -21176,6 +21230,7 @@ static const struct snd_soc_dapm_route intercon[] = {
{"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
{"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
{"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
{"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
{"LSM8_UL_HL", NULL, "LSM8 Mixer"},

View File

@ -2675,7 +2675,8 @@ int afe_port_set_mad_type(u16 port_id, enum afe_mad_type mad_type)
int i;
if (port_id == AFE_PORT_ID_TERTIARY_MI2S_TX ||
port_id == AFE_PORT_ID_INT3_MI2S_TX) {
port_id == AFE_PORT_ID_INT3_MI2S_TX ||
port_id == AFE_PORT_ID_TX_CODEC_DMA_TX_3) {
mad_type = MAD_SW_AUDIO;
return 0;
}
@ -2703,7 +2704,8 @@ enum afe_mad_type afe_port_get_mad_type(u16 port_id)
int i;
if (port_id == AFE_PORT_ID_TERTIARY_MI2S_TX ||
port_id == AFE_PORT_ID_INT3_MI2S_TX)
port_id == AFE_PORT_ID_INT3_MI2S_TX ||
port_id == AFE_PORT_ID_TX_CODEC_DMA_TX_3)
return MAD_SW_AUDIO;
i = port_id - SLIMBUS_0_RX;