diff --git a/asoc/msm-dai-q6-v2.c b/asoc/msm-dai-q6-v2.c index ec6807a7964f..7f305cf52f78 100644 --- a/asoc/msm-dai-q6-v2.c +++ b/asoc/msm-dai-q6-v2.c @@ -9680,6 +9680,14 @@ static int msm_dai_q6_cdc_dma_set_channel_map(struct snd_soc_dai *dai, switch (dai->id) { case AFE_PORT_ID_WSA_CODEC_DMA_RX_0: case AFE_PORT_ID_WSA_CODEC_DMA_RX_1: + case AFE_PORT_ID_RX_CODEC_DMA_RX_0: + case AFE_PORT_ID_RX_CODEC_DMA_RX_1: + case AFE_PORT_ID_RX_CODEC_DMA_RX_2: + case AFE_PORT_ID_RX_CODEC_DMA_RX_3: + case AFE_PORT_ID_RX_CODEC_DMA_RX_4: + case AFE_PORT_ID_RX_CODEC_DMA_RX_5: + case AFE_PORT_ID_RX_CODEC_DMA_RX_6: + case AFE_PORT_ID_RX_CODEC_DMA_RX_7: if (!rx_ch_mask) { dev_err(dai->dev, "%s: invalid rx ch mask\n", __func__); return -EINVAL; @@ -9697,6 +9705,12 @@ static int msm_dai_q6_cdc_dma_set_channel_map(struct snd_soc_dai *dai, case AFE_PORT_ID_WSA_CODEC_DMA_TX_2: case AFE_PORT_ID_VA_CODEC_DMA_TX_0: case AFE_PORT_ID_VA_CODEC_DMA_TX_1: + case AFE_PORT_ID_TX_CODEC_DMA_TX_0: + case AFE_PORT_ID_TX_CODEC_DMA_TX_1: + case AFE_PORT_ID_TX_CODEC_DMA_TX_2: + case AFE_PORT_ID_TX_CODEC_DMA_TX_3: + case AFE_PORT_ID_TX_CODEC_DMA_TX_4: + case AFE_PORT_ID_TX_CODEC_DMA_TX_5: if (!tx_ch_mask) { dev_err(dai->dev, "%s: invalid tx ch mask\n", __func__); return -EINVAL; @@ -10006,7 +10020,355 @@ static struct snd_soc_dai_driver msm_dai_q6_cdc_dma_dai[] = { .probe = msm_dai_q6_dai_cdc_dma_probe, .remove = msm_dai_q6_dai_cdc_dma_remove, }, - + { + .playback = { + .stream_name = "RX CDC DMA0 Playback", + .aif_name = "RX_CDC_DMA_RX_0", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | + SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 | + SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_352800 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 2, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_RX_CODEC_DMA_RX_0, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .capture = { + .stream_name = "TX CDC DMA0 Capture", + .aif_name = "TX_CDC_DMA_TX_0", + .rates = SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | + SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_96000 | + SNDRV_PCM_RATE_192000 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 3, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_TX_CODEC_DMA_TX_0, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .playback = { + .stream_name = "RX CDC DMA1 Playback", + .aif_name = "RX_CDC_DMA_RX_1", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | + SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 | + SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_352800 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 2, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_RX_CODEC_DMA_RX_1, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .capture = { + .stream_name = "TX CDC DMA1 Capture", + .aif_name = "TX_CDC_DMA_TX_1", + .rates = SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | + SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_96000 | + SNDRV_PCM_RATE_192000 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 3, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_TX_CODEC_DMA_TX_1, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .playback = { + .stream_name = "RX CDC DMA2 Playback", + .aif_name = "RX_CDC_DMA_RX_2", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | + SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 | + SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_352800 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 1, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_RX_CODEC_DMA_RX_2, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .capture = { + .stream_name = "TX CDC DMA2 Capture", + .aif_name = "TX_CDC_DMA_TX_2", + .rates = SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | + SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_96000 | + SNDRV_PCM_RATE_192000 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 4, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_TX_CODEC_DMA_TX_2, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, { + .playback = { + .stream_name = "RX CDC DMA3 Playback", + .aif_name = "RX_CDC_DMA_RX_3", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | + SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 | + SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_352800 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 1, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_RX_CODEC_DMA_RX_3, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .capture = { + .stream_name = "TX CDC DMA3 Capture", + .aif_name = "TX_CDC_DMA_TX_3", + .rates = SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | + SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_96000 | + SNDRV_PCM_RATE_192000 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 8, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_TX_CODEC_DMA_TX_3, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .playback = { + .stream_name = "RX CDC DMA4 Playback", + .aif_name = "RX_CDC_DMA_RX_4", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | + SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 | + SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_352800 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 6, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_RX_CODEC_DMA_RX_4, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .capture = { + .stream_name = "TX CDC DMA4 Capture", + .aif_name = "TX_CDC_DMA_TX_4", + .rates = SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | + SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_96000 | + SNDRV_PCM_RATE_192000 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 8, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_TX_CODEC_DMA_TX_4, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .playback = { + .stream_name = "RX CDC DMA5 Playback", + .aif_name = "RX_CDC_DMA_RX_5", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | + SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 | + SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_352800 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 1, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_RX_CODEC_DMA_RX_5, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .capture = { + .stream_name = "TX CDC DMA5 Capture", + .aif_name = "TX_CDC_DMA_TX_5", + .rates = SNDRV_PCM_RATE_8000 | + SNDRV_PCM_RATE_16000 | + SNDRV_PCM_RATE_32000 | + SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_96000 | + SNDRV_PCM_RATE_192000 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 4, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_TX_CODEC_DMA_TX_5, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .playback = { + .stream_name = "RX CDC DMA6 Playback", + .aif_name = "RX_CDC_DMA_RX_6", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | + SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 | + SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_352800 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 4, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_RX_CODEC_DMA_RX_6, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, + { + .playback = { + .stream_name = "RX CDC DMA7 Playback", + .aif_name = "RX_CDC_DMA_RX_7", + .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | + SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | + SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 | + SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_352800 | + SNDRV_PCM_RATE_384000, + .formats = SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S24_3LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 1, + .channels_max = 2, + .rate_min = 8000, + .rate_max = 384000, + }, + .ops = &msm_dai_q6_cdc_dma_ops, + .id = AFE_PORT_ID_RX_CODEC_DMA_RX_7, + .probe = msm_dai_q6_dai_cdc_dma_probe, + .remove = msm_dai_q6_dai_cdc_dma_remove, + }, }; static const struct snd_soc_component_driver msm_q6_cdc_dma_dai_component = {