Loading sound/soc/msm/qdsp6v2/msm-dai-q6-v2.c +4 −4 Original line number Diff line number Diff line Loading @@ -2033,8 +2033,8 @@ static struct snd_soc_dai_ops msm_dai_q6_mi2s_ops = { static struct snd_soc_dai_driver msm_dai_q6_mi2s_dai[] = { { .playback = { .stream_name = "Primary I2S Playback", .aif_name = "PRI_I2S_RX", .stream_name = "Primary MI2S Playback", .aif_name = "PRI_MI2S_RX", .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000, .formats = SNDRV_PCM_FMTBIT_S16_LE, Loading @@ -2042,8 +2042,8 @@ static struct snd_soc_dai_driver msm_dai_q6_mi2s_dai[] = { .rate_max = 48000, }, .capture = { .stream_name = "Primary I2S Capture", .aif_name = "PRI_I2S_TX", .stream_name = "Primary MI2S Capture", .aif_name = "PRI_MI2S_TX", .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000, .formats = SNDRV_PCM_FMTBIT_S16_LE, Loading sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.c +40 −0 Original line number Diff line number Diff line Loading @@ -2331,6 +2331,31 @@ static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = { msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = { SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = { SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_AFE_PCM_RX, MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer, Loading Loading @@ -2449,6 +2474,9 @@ static const struct snd_kcontrol_new tx_voice_mixer_controls[] = { SOC_SINGLE_EXT("MI2S_TX_Voice", MSM_BACKEND_DAI_MI2S_TX, MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("PRI_MI2S_TX_Voice", MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("SLIM_0_TX_Voice", MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), Loading Loading @@ -3560,6 +3588,10 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = { SND_SOC_NOPM, 0, 0, mi2s_rx_voice_mixer_controls, ARRAY_SIZE(mi2s_rx_voice_mixer_controls)), SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer", SND_SOC_NOPM, 0, 0, pri_mi2s_rx_voice_mixer_controls, ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)), SND_SOC_DAPM_MIXER("Voice_Tx Mixer", SND_SOC_NOPM, 0, 0, tx_voice_mixer_controls, ARRAY_SIZE(tx_voice_mixer_controls)), Loading Loading @@ -3938,6 +3970,14 @@ static const struct snd_soc_dapm_route intercon[] = { {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"}, {"PRI_MI2S_RX_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, {"PRI_MI2S_RX_Voice Mixer", "Voice2", "VOICE2_DL"}, {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"}, {"PRI_MI2S_RX_Voice Mixer", "VoLTE", "VoLTE_DL"}, {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"}, {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"}, {"VOC_EXT_EC MUX", "PRI_MI2S_TX" , "PRI_MI2S_TX"}, {"VOC_EXT_EC MUX", "SEC_MI2S_TX" , "SEC_MI2S_TX"}, {"VOC_EXT_EC MUX", "TERT_MI2S_TX" , "TERT_MI2S_TX"}, Loading sound/soc/msm/qdsp6v2/q6afe.c +3 −0 Original line number Diff line number Diff line Loading @@ -300,6 +300,7 @@ int afe_sizeof_cfg_cmd(u16 port_id) case MI2S_RX: case MI2S_TX: case AFE_PORT_ID_PRIMARY_MI2S_RX: case AFE_PORT_ID_PRIMARY_MI2S_TX: ret_size = SIZEOF_CFG_CMD(afe_param_id_i2s_cfg); break; case HDMI_RX: Loading Loading @@ -1585,6 +1586,7 @@ int afe_open(u16 port_id, case SECONDARY_I2S_RX: case SECONDARY_I2S_TX: case AFE_PORT_ID_PRIMARY_MI2S_RX: case AFE_PORT_ID_PRIMARY_MI2S_TX: case MI2S_RX: case MI2S_TX: cfg_type = AFE_PARAM_ID_I2S_CONFIG; Loading Loading @@ -2818,6 +2820,7 @@ int afe_validate_port(u16 port_id) case SLIMBUS_6_RX: case SLIMBUS_6_TX: case AFE_PORT_ID_PRIMARY_MI2S_RX: case AFE_PORT_ID_PRIMARY_MI2S_TX: { ret = 0; break; Loading Loading
sound/soc/msm/qdsp6v2/msm-dai-q6-v2.c +4 −4 Original line number Diff line number Diff line Loading @@ -2033,8 +2033,8 @@ static struct snd_soc_dai_ops msm_dai_q6_mi2s_ops = { static struct snd_soc_dai_driver msm_dai_q6_mi2s_dai[] = { { .playback = { .stream_name = "Primary I2S Playback", .aif_name = "PRI_I2S_RX", .stream_name = "Primary MI2S Playback", .aif_name = "PRI_MI2S_RX", .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000, .formats = SNDRV_PCM_FMTBIT_S16_LE, Loading @@ -2042,8 +2042,8 @@ static struct snd_soc_dai_driver msm_dai_q6_mi2s_dai[] = { .rate_max = 48000, }, .capture = { .stream_name = "Primary I2S Capture", .aif_name = "PRI_I2S_TX", .stream_name = "Primary MI2S Capture", .aif_name = "PRI_MI2S_TX", .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000, .formats = SNDRV_PCM_FMTBIT_S16_LE, Loading
sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.c +40 −0 Original line number Diff line number Diff line Loading @@ -2331,6 +2331,31 @@ static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = { msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = { SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = { SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_AFE_PCM_RX, MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer, Loading Loading @@ -2449,6 +2474,9 @@ static const struct snd_kcontrol_new tx_voice_mixer_controls[] = { SOC_SINGLE_EXT("MI2S_TX_Voice", MSM_BACKEND_DAI_MI2S_TX, MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("PRI_MI2S_TX_Voice", MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_SINGLE_EXT("SLIM_0_TX_Voice", MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), Loading Loading @@ -3560,6 +3588,10 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = { SND_SOC_NOPM, 0, 0, mi2s_rx_voice_mixer_controls, ARRAY_SIZE(mi2s_rx_voice_mixer_controls)), SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer", SND_SOC_NOPM, 0, 0, pri_mi2s_rx_voice_mixer_controls, ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)), SND_SOC_DAPM_MIXER("Voice_Tx Mixer", SND_SOC_NOPM, 0, 0, tx_voice_mixer_controls, ARRAY_SIZE(tx_voice_mixer_controls)), Loading Loading @@ -3938,6 +3970,14 @@ static const struct snd_soc_dapm_route intercon[] = { {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"}, {"PRI_MI2S_RX_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, {"PRI_MI2S_RX_Voice Mixer", "Voice2", "VOICE2_DL"}, {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"}, {"PRI_MI2S_RX_Voice Mixer", "VoLTE", "VoLTE_DL"}, {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"}, {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"}, {"VOC_EXT_EC MUX", "PRI_MI2S_TX" , "PRI_MI2S_TX"}, {"VOC_EXT_EC MUX", "SEC_MI2S_TX" , "SEC_MI2S_TX"}, {"VOC_EXT_EC MUX", "TERT_MI2S_TX" , "TERT_MI2S_TX"}, Loading
sound/soc/msm/qdsp6v2/q6afe.c +3 −0 Original line number Diff line number Diff line Loading @@ -300,6 +300,7 @@ int afe_sizeof_cfg_cmd(u16 port_id) case MI2S_RX: case MI2S_TX: case AFE_PORT_ID_PRIMARY_MI2S_RX: case AFE_PORT_ID_PRIMARY_MI2S_TX: ret_size = SIZEOF_CFG_CMD(afe_param_id_i2s_cfg); break; case HDMI_RX: Loading Loading @@ -1585,6 +1586,7 @@ int afe_open(u16 port_id, case SECONDARY_I2S_RX: case SECONDARY_I2S_TX: case AFE_PORT_ID_PRIMARY_MI2S_RX: case AFE_PORT_ID_PRIMARY_MI2S_TX: case MI2S_RX: case MI2S_TX: cfg_type = AFE_PARAM_ID_I2S_CONFIG; Loading Loading @@ -2818,6 +2820,7 @@ int afe_validate_port(u16 port_id) case SLIMBUS_6_RX: case SLIMBUS_6_TX: case AFE_PORT_ID_PRIMARY_MI2S_RX: case AFE_PORT_ID_PRIMARY_MI2S_TX: { ret = 0; break; Loading