Loading include/sound/apr_audio-v2.h +1 −0 Original line number Diff line number Diff line Loading @@ -1034,6 +1034,7 @@ struct adm_cmd_connect_afe_port_v5 { #define AFE_PORT_ID_TERTIARY_MI2S_TX 0x1005 #define AFE_PORT_ID_QUATERNARY_MI2S_RX 0x1006 #define AFE_PORT_ID_QUATERNARY_MI2S_TX 0x1007 #define MI2S_PORT_LAST AFE_PORT_ID_QUATERNARY_MI2S_TX #define AUDIO_PORT_ID_I2S_RX 0x1008 #define AFE_PORT_ID_DIGITAL_MIC_TX 0x1009 #define AFE_PORT_ID_PRIMARY_PCM_RX 0x100A Loading sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.c +20 −1 Original line number Diff line number Diff line Loading @@ -82,12 +82,13 @@ enum { #define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX" #define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX" #define TERT_MI2S_TX_TEXT "TERT_MI2S_TX" #define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX" #define LSM_FUNCTION_TEXT "LSM Function" static const char * const mad_audio_mux_text[] = { "None", 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 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT }; struct msm_pcm_route_bdai_pp_params { Loading Loading @@ -1760,6 +1761,9 @@ static int msm_routing_lsm_mux_put(struct snd_kcontrol *kcontrol, case 7: lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX; break; case 8: lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX; break; default: pr_err("Default lsm port"); break; Loading Loading @@ -1802,6 +1806,9 @@ static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol, } port_id = i * 2 + 1 + SLIMBUS_0_RX; if (!strcmp(kcontrol->id.name, mad_audio_mux_text[8])) port_id = AFE_PORT_ID_QUATERNARY_MI2S_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); Loading Loading @@ -1873,6 +1880,8 @@ static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol, port_id = AFE_PORT_ID_TERTIARY_MI2S_TX; mad_type = MAD_SW_AUDIO; } if (!strcmp(kcontrol->id.name, mad_audio_mux_text[8])) port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX; pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id, mad_type); Loading Loading @@ -5927,6 +5936,8 @@ static const struct snd_kcontrol_new lsm_function[] = { msm_routing_lsm_func_get, msm_routing_lsm_func_put), SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum, msm_routing_lsm_func_get, msm_routing_lsm_func_put), SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum, msm_routing_lsm_func_get, msm_routing_lsm_func_put), }; static const char * const aanc_slim_0_rx_text[] = { Loading Loading @@ -8592,6 +8603,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM1 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM1 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"LSM1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM1_UL_HL", NULL, "LSM1 MUX"}, {"LSM2 MUX", "SLIMBUS_0_TX", "SLIMBUS_0_TX"}, Loading @@ -8600,6 +8612,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM2 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM2 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"LSM2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM2_UL_HL", NULL, "LSM2 MUX"}, Loading @@ -8609,6 +8622,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM3 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM3 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"LSM3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM3_UL_HL", NULL, "LSM3 MUX"}, Loading @@ -8618,6 +8632,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM4 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM4 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"LSM4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM4_UL_HL", NULL, "LSM4 MUX"}, {"LSM5 MUX", "SLIMBUS_0_TX", "SLIMBUS_0_TX"}, Loading @@ -8626,6 +8641,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM5 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM5 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"LSM5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM5_UL_HL", NULL, "LSM5 MUX"}, {"LSM6 MUX", "SLIMBUS_0_TX", "SLIMBUS_0_TX"}, Loading @@ -8633,6 +8649,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM6 MUX", "SLIMBUS_3_TX", "SLIMBUS_3_TX"}, {"LSM6 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM6 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM6_UL_HL", NULL, "LSM6 MUX"}, Loading @@ -8641,6 +8658,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM7 MUX", "SLIMBUS_3_TX", "SLIMBUS_3_TX"}, {"LSM7 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM7 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM7 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM7_UL_HL", NULL, "LSM7 MUX"}, Loading @@ -8649,6 +8667,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM8 MUX", "SLIMBUS_3_TX", "SLIMBUS_3_TX"}, {"LSM8 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM8 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM8_UL_HL", NULL, "LSM8 MUX"}, Loading sound/soc/msm/qdsp6v2/q6afe.c +16 −5 Original line number Diff line number Diff line Loading @@ -120,7 +120,12 @@ struct afe_ctl { int set_custom_topology; }; static atomic_t afe_ports_mad_type[SLIMBUS_PORT_LAST - SLIMBUS_0_RX]; #define MAD_SLIMBUS_PORT_COUNT ((SLIMBUS_PORT_LAST - SLIMBUS_0_RX) + 1) #define MAD_MI2S_PORT_COUNT ((MI2S_PORT_LAST - AFE_PORT_ID_PRIMARY_MI2S_TX) \ + 1) static atomic_t afe_ports_mad_type[MAD_SLIMBUS_PORT_COUNT + MAD_MI2S_PORT_COUNT]; static unsigned long afe_configured_cmd; static struct afe_ctl this_afe; Loading Loading @@ -1892,7 +1897,10 @@ int afe_port_set_mad_type(u16 port_id, enum afe_mad_type mad_type) mad_type = MAD_SW_AUDIO; return 0; } if (port_id == AFE_PORT_ID_QUATERNARY_MI2S_TX) i = MAD_SLIMBUS_PORT_COUNT + (port_id - AFE_PORT_ID_PRIMARY_MI2S_TX) - 1; else i = port_id - SLIMBUS_0_RX; if (i < 0 || i >= ARRAY_SIZE(afe_ports_mad_type)) { pr_err("%s: Invalid port_id 0x%x\n", __func__, port_id); Loading @@ -1908,7 +1916,10 @@ enum afe_mad_type afe_port_get_mad_type(u16 port_id) if (port_id == AFE_PORT_ID_TERTIARY_MI2S_TX) return MAD_SW_AUDIO; if (port_id == AFE_PORT_ID_QUATERNARY_MI2S_TX) i = MAD_SLIMBUS_PORT_COUNT + (port_id - AFE_PORT_ID_PRIMARY_MI2S_TX) - 1; else i = port_id - SLIMBUS_0_RX; if (i < 0 || i >= ARRAY_SIZE(afe_ports_mad_type)) { pr_debug("%s: Non Slimbus port_id 0x%x\n", __func__, port_id); Loading Loading
include/sound/apr_audio-v2.h +1 −0 Original line number Diff line number Diff line Loading @@ -1034,6 +1034,7 @@ struct adm_cmd_connect_afe_port_v5 { #define AFE_PORT_ID_TERTIARY_MI2S_TX 0x1005 #define AFE_PORT_ID_QUATERNARY_MI2S_RX 0x1006 #define AFE_PORT_ID_QUATERNARY_MI2S_TX 0x1007 #define MI2S_PORT_LAST AFE_PORT_ID_QUATERNARY_MI2S_TX #define AUDIO_PORT_ID_I2S_RX 0x1008 #define AFE_PORT_ID_DIGITAL_MIC_TX 0x1009 #define AFE_PORT_ID_PRIMARY_PCM_RX 0x100A Loading
sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.c +20 −1 Original line number Diff line number Diff line Loading @@ -82,12 +82,13 @@ enum { #define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX" #define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX" #define TERT_MI2S_TX_TEXT "TERT_MI2S_TX" #define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX" #define LSM_FUNCTION_TEXT "LSM Function" static const char * const mad_audio_mux_text[] = { "None", 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 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT }; struct msm_pcm_route_bdai_pp_params { Loading Loading @@ -1760,6 +1761,9 @@ static int msm_routing_lsm_mux_put(struct snd_kcontrol *kcontrol, case 7: lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX; break; case 8: lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX; break; default: pr_err("Default lsm port"); break; Loading Loading @@ -1802,6 +1806,9 @@ static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol, } port_id = i * 2 + 1 + SLIMBUS_0_RX; if (!strcmp(kcontrol->id.name, mad_audio_mux_text[8])) port_id = AFE_PORT_ID_QUATERNARY_MI2S_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); Loading Loading @@ -1873,6 +1880,8 @@ static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol, port_id = AFE_PORT_ID_TERTIARY_MI2S_TX; mad_type = MAD_SW_AUDIO; } if (!strcmp(kcontrol->id.name, mad_audio_mux_text[8])) port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX; pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id, mad_type); Loading Loading @@ -5927,6 +5936,8 @@ static const struct snd_kcontrol_new lsm_function[] = { msm_routing_lsm_func_get, msm_routing_lsm_func_put), SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum, msm_routing_lsm_func_get, msm_routing_lsm_func_put), SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum, msm_routing_lsm_func_get, msm_routing_lsm_func_put), }; static const char * const aanc_slim_0_rx_text[] = { Loading Loading @@ -8592,6 +8603,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM1 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM1 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"LSM1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM1_UL_HL", NULL, "LSM1 MUX"}, {"LSM2 MUX", "SLIMBUS_0_TX", "SLIMBUS_0_TX"}, Loading @@ -8600,6 +8612,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM2 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM2 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"LSM2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM2_UL_HL", NULL, "LSM2 MUX"}, Loading @@ -8609,6 +8622,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM3 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM3 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"LSM3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM3_UL_HL", NULL, "LSM3 MUX"}, Loading @@ -8618,6 +8632,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM4 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM4 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"LSM4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM4_UL_HL", NULL, "LSM4 MUX"}, {"LSM5 MUX", "SLIMBUS_0_TX", "SLIMBUS_0_TX"}, Loading @@ -8626,6 +8641,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM5 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM5 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"LSM5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM5_UL_HL", NULL, "LSM5 MUX"}, {"LSM6 MUX", "SLIMBUS_0_TX", "SLIMBUS_0_TX"}, Loading @@ -8633,6 +8649,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM6 MUX", "SLIMBUS_3_TX", "SLIMBUS_3_TX"}, {"LSM6 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM6 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM6_UL_HL", NULL, "LSM6 MUX"}, Loading @@ -8641,6 +8658,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM7 MUX", "SLIMBUS_3_TX", "SLIMBUS_3_TX"}, {"LSM7 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM7 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM7 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM7_UL_HL", NULL, "LSM7 MUX"}, Loading @@ -8649,6 +8667,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"LSM8 MUX", "SLIMBUS_3_TX", "SLIMBUS_3_TX"}, {"LSM8 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"}, {"LSM8 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"}, {"LSM8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"}, {"LSM8_UL_HL", NULL, "LSM8 MUX"}, Loading
sound/soc/msm/qdsp6v2/q6afe.c +16 −5 Original line number Diff line number Diff line Loading @@ -120,7 +120,12 @@ struct afe_ctl { int set_custom_topology; }; static atomic_t afe_ports_mad_type[SLIMBUS_PORT_LAST - SLIMBUS_0_RX]; #define MAD_SLIMBUS_PORT_COUNT ((SLIMBUS_PORT_LAST - SLIMBUS_0_RX) + 1) #define MAD_MI2S_PORT_COUNT ((MI2S_PORT_LAST - AFE_PORT_ID_PRIMARY_MI2S_TX) \ + 1) static atomic_t afe_ports_mad_type[MAD_SLIMBUS_PORT_COUNT + MAD_MI2S_PORT_COUNT]; static unsigned long afe_configured_cmd; static struct afe_ctl this_afe; Loading Loading @@ -1892,7 +1897,10 @@ int afe_port_set_mad_type(u16 port_id, enum afe_mad_type mad_type) mad_type = MAD_SW_AUDIO; return 0; } if (port_id == AFE_PORT_ID_QUATERNARY_MI2S_TX) i = MAD_SLIMBUS_PORT_COUNT + (port_id - AFE_PORT_ID_PRIMARY_MI2S_TX) - 1; else i = port_id - SLIMBUS_0_RX; if (i < 0 || i >= ARRAY_SIZE(afe_ports_mad_type)) { pr_err("%s: Invalid port_id 0x%x\n", __func__, port_id); Loading @@ -1908,7 +1916,10 @@ enum afe_mad_type afe_port_get_mad_type(u16 port_id) if (port_id == AFE_PORT_ID_TERTIARY_MI2S_TX) return MAD_SW_AUDIO; if (port_id == AFE_PORT_ID_QUATERNARY_MI2S_TX) i = MAD_SLIMBUS_PORT_COUNT + (port_id - AFE_PORT_ID_PRIMARY_MI2S_TX) - 1; else i = port_id - SLIMBUS_0_RX; if (i < 0 || i >= ARRAY_SIZE(afe_ports_mad_type)) { pr_debug("%s: Non Slimbus port_id 0x%x\n", __func__, port_id); Loading