Loading sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.c +8 −2 Original line number Diff line number Diff line Loading @@ -2417,6 +2417,9 @@ static const struct snd_kcontrol_new mmul6_mixer_controls[] = { SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer, msm_routing_put_audio_mixer), SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer, msm_routing_put_audio_mixer), }; static const struct snd_kcontrol_new mmul8_mixer_controls[] = { Loading Loading @@ -3181,6 +3184,9 @@ static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = { SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX, MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer, msm_routing_put_port_mixer), SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX, MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer, msm_routing_put_port_mixer), }; static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = { Loading Loading @@ -4281,6 +4287,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"}, {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"}, {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"}, {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"}, {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"}, Loading Loading @@ -4393,6 +4400,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"}, {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"}, {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"}, {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_UL6"}, {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"}, {"MI2S_RX_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, Loading Loading @@ -4723,8 +4731,6 @@ static const struct snd_soc_dapm_route intercon[] = { {"INT_FM_RX", NULL, "INTFM_DL_HL"}, {"INTFM_UL_HL", NULL, "INT_FM_TX"}, {"INTHFP_UL_HL", NULL, "INT_BT_SCO_TX"}, {"INT_BT_SCO_RX", NULL, "MM_DL6"}, {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"}, {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"}, {"MI2S_RX", NULL, "MI2S_DL_HL"}, Loading sound/soc/msm/qdsp6v2/msm-qti-pp-config.c +35 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,10 @@ static int msm_route_hfp_vol_control; static const DECLARE_TLV_DB_LINEAR(hfp_rx_vol_gain, 0, INT_RX_VOL_MAX_STEPS); static int msm_route_auxpcm_lb_vol_ctrl; static const DECLARE_TLV_DB_LINEAR(auxpcm_lb_vol_gain, 0, INT_RX_VOL_MAX_STEPS); static void msm_qti_pp_send_eq_values_(int eq_idx) { int result; Loading Loading @@ -442,6 +446,26 @@ static int msm_qti_pp_set_hfp_vol_mixer(struct snd_kcontrol *kcontrol, return 0; } static int msm_qti_pp_get_auxpcm_lb_vol_mixer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { ucontrol->value.integer.value[0] = msm_route_auxpcm_lb_vol_ctrl; return 0; } static int msm_qti_pp_set_auxpcm_lb_vol_mixer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct soc_mixer_control *mc = (struct soc_mixer_control *)kcontrol->private_value; afe_loopback_gain(mc->reg, ucontrol->value.integer.value[0]); msm_route_auxpcm_lb_vol_ctrl = ucontrol->value.integer.value[0]; return 0; } static int msm_qti_pp_get_channel_map_mixer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { Loading Loading @@ -488,6 +512,13 @@ static const struct snd_kcontrol_new int_hfp_vol_mixer_controls[] = { msm_qti_pp_set_hfp_vol_mixer, hfp_rx_vol_gain), }; static const struct snd_kcontrol_new sec_auxpcm_lb_vol_mixer_controls[] = { SOC_SINGLE_EXT_TLV("SEC AUXPCM LOOPBACK Volume", AFE_PORT_ID_SECONDARY_PCM_TX, 0, INT_RX_VOL_GAIN, 0, msm_qti_pp_get_auxpcm_lb_vol_mixer, msm_qti_pp_set_auxpcm_lb_vol_mixer, auxpcm_lb_vol_gain), }; static const struct snd_kcontrol_new multi_ch_channel_map_mixer_controls[] = { SOC_SINGLE_MULTI_EXT("Playback Channel Map", SND_SOC_NOPM, 0, 16, 0, 8, msm_qti_pp_get_channel_map_mixer, Loading Loading @@ -649,6 +680,10 @@ void msm_qti_pp_add_controls(struct snd_soc_platform *platform) snd_soc_add_platform_controls(platform, int_hfp_vol_mixer_controls, ARRAY_SIZE(int_hfp_vol_mixer_controls)); snd_soc_add_platform_controls(platform, sec_auxpcm_lb_vol_mixer_controls, ARRAY_SIZE(sec_auxpcm_lb_vol_mixer_controls)); snd_soc_add_platform_controls(platform, multi_ch_channel_map_mixer_controls, ARRAY_SIZE(multi_ch_channel_map_mixer_controls)); Loading Loading
sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.c +8 −2 Original line number Diff line number Diff line Loading @@ -2417,6 +2417,9 @@ static const struct snd_kcontrol_new mmul6_mixer_controls[] = { SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer, msm_routing_put_audio_mixer), SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer, msm_routing_put_audio_mixer), }; static const struct snd_kcontrol_new mmul8_mixer_controls[] = { Loading Loading @@ -3181,6 +3184,9 @@ static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = { SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX, MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer, msm_routing_put_port_mixer), SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX, MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer, msm_routing_put_port_mixer), }; static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = { Loading Loading @@ -4281,6 +4287,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"}, {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"}, {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"}, {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"}, {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"}, {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"}, Loading Loading @@ -4393,6 +4400,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"}, {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"}, {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"}, {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_UL6"}, {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"}, {"MI2S_RX_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, Loading Loading @@ -4723,8 +4731,6 @@ static const struct snd_soc_dapm_route intercon[] = { {"INT_FM_RX", NULL, "INTFM_DL_HL"}, {"INTFM_UL_HL", NULL, "INT_FM_TX"}, {"INTHFP_UL_HL", NULL, "INT_BT_SCO_TX"}, {"INT_BT_SCO_RX", NULL, "MM_DL6"}, {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"}, {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"}, {"MI2S_RX", NULL, "MI2S_DL_HL"}, Loading
sound/soc/msm/qdsp6v2/msm-qti-pp-config.c +35 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,10 @@ static int msm_route_hfp_vol_control; static const DECLARE_TLV_DB_LINEAR(hfp_rx_vol_gain, 0, INT_RX_VOL_MAX_STEPS); static int msm_route_auxpcm_lb_vol_ctrl; static const DECLARE_TLV_DB_LINEAR(auxpcm_lb_vol_gain, 0, INT_RX_VOL_MAX_STEPS); static void msm_qti_pp_send_eq_values_(int eq_idx) { int result; Loading Loading @@ -442,6 +446,26 @@ static int msm_qti_pp_set_hfp_vol_mixer(struct snd_kcontrol *kcontrol, return 0; } static int msm_qti_pp_get_auxpcm_lb_vol_mixer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { ucontrol->value.integer.value[0] = msm_route_auxpcm_lb_vol_ctrl; return 0; } static int msm_qti_pp_set_auxpcm_lb_vol_mixer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct soc_mixer_control *mc = (struct soc_mixer_control *)kcontrol->private_value; afe_loopback_gain(mc->reg, ucontrol->value.integer.value[0]); msm_route_auxpcm_lb_vol_ctrl = ucontrol->value.integer.value[0]; return 0; } static int msm_qti_pp_get_channel_map_mixer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { Loading Loading @@ -488,6 +512,13 @@ static const struct snd_kcontrol_new int_hfp_vol_mixer_controls[] = { msm_qti_pp_set_hfp_vol_mixer, hfp_rx_vol_gain), }; static const struct snd_kcontrol_new sec_auxpcm_lb_vol_mixer_controls[] = { SOC_SINGLE_EXT_TLV("SEC AUXPCM LOOPBACK Volume", AFE_PORT_ID_SECONDARY_PCM_TX, 0, INT_RX_VOL_GAIN, 0, msm_qti_pp_get_auxpcm_lb_vol_mixer, msm_qti_pp_set_auxpcm_lb_vol_mixer, auxpcm_lb_vol_gain), }; static const struct snd_kcontrol_new multi_ch_channel_map_mixer_controls[] = { SOC_SINGLE_MULTI_EXT("Playback Channel Map", SND_SOC_NOPM, 0, 16, 0, 8, msm_qti_pp_get_channel_map_mixer, Loading Loading @@ -649,6 +680,10 @@ void msm_qti_pp_add_controls(struct snd_soc_platform *platform) snd_soc_add_platform_controls(platform, int_hfp_vol_mixer_controls, ARRAY_SIZE(int_hfp_vol_mixer_controls)); snd_soc_add_platform_controls(platform, sec_auxpcm_lb_vol_mixer_controls, ARRAY_SIZE(sec_auxpcm_lb_vol_mixer_controls)); snd_soc_add_platform_controls(platform, multi_ch_channel_map_mixer_controls, ARRAY_SIZE(multi_ch_channel_map_mixer_controls)); Loading