asoc: Add Hostless DAI for WSA CDC DMA Rx interface
Enable hostless DAI for WSA CDC DMA Rx interface for hands free profile use case. Change-Id: I3c4246414dc477cdad382b46a6dbe6770dc5b89e Signed-off-by: Mangesh Kunchamwar <mangeshk@codeaurora.org>
This commit is contained in:
parent
ab8586d542
commit
91c2173c2f
3 changed files with 74 additions and 1 deletions
|
@ -533,6 +533,48 @@ static struct snd_soc_dai_driver msm_fe_dais[] = {
|
|||
.name = "SLIMBUS8_HOSTLESS",
|
||||
.probe = fe_dai_probe,
|
||||
},
|
||||
{
|
||||
.playback = {
|
||||
.stream_name = "CDC_DMA_HOSTLESS Playback",
|
||||
.aif_name = "CDC_DMA_DL_HL",
|
||||
.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,
|
||||
},
|
||||
.capture = {
|
||||
.stream_name = "CDC_DMA_HOSTLESS Capture",
|
||||
.aif_name = "CDC_DMA_UL_HL",
|
||||
.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,
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
.rate_min = 8000,
|
||||
.rate_max = 384000,
|
||||
},
|
||||
.ops = &msm_fe_dai_ops,
|
||||
.name = "CDC_DMA_HOSTLESS",
|
||||
.probe = fe_dai_probe,
|
||||
},
|
||||
{
|
||||
.playback = {
|
||||
.stream_name = "INT_FM_HOSTLESS Playback",
|
||||
|
|
|
@ -14485,6 +14485,11 @@ static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
|
|||
0, 1, 0, msm_routing_get_switch_mixer,
|
||||
msm_routing_put_switch_mixer);
|
||||
|
||||
static const struct snd_kcontrol_new cdc_dma_fm_switch_mixer_controls =
|
||||
SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
|
||||
0, 1, 0, msm_routing_get_switch_mixer,
|
||||
msm_routing_put_switch_mixer);
|
||||
|
||||
static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
|
||||
SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
|
||||
0, 1, 0, msm_routing_get_switch_mixer,
|
||||
|
@ -15755,6 +15760,10 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|||
0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
|
||||
0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
|
||||
0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
|
||||
0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
|
||||
0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
|
||||
|
@ -16464,6 +16473,8 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|||
&usb_switch_mixer_controls),
|
||||
SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
|
||||
&a2dp_slim7_switch_mixer_controls),
|
||||
SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
|
||||
&cdc_dma_fm_switch_mixer_controls),
|
||||
|
||||
/* Mixer definitions */
|
||||
SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
|
||||
|
@ -18845,7 +18856,9 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
|
||||
{"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
|
||||
{"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
|
||||
|
||||
{"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
|
||||
{"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
|
||||
{"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
|
||||
{"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
|
||||
{"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
|
||||
{"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
|
||||
|
|
|
@ -5245,6 +5245,24 @@ static struct snd_soc_dai_link msm_common_dai_links[] = {
|
|||
.codec_dai_name = "snd-soc-dummy-dai",
|
||||
.codec_name = "snd-soc-dummy",
|
||||
},
|
||||
/* Hostless PCM purpose */
|
||||
{
|
||||
.name = "CDC_DMA Hostless",
|
||||
.stream_name = "CDC_DMA Hostless",
|
||||
.cpu_dai_name = "CDC_DMA_HOSTLESS",
|
||||
.platform_name = "msm-pcm-hostless",
|
||||
.dynamic = 1,
|
||||
.dpcm_playback = 1,
|
||||
.dpcm_capture = 1,
|
||||
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
|
||||
SND_SOC_DPCM_TRIGGER_POST},
|
||||
.no_host_mode = SND_SOC_DAI_LINK_NO_HOST,
|
||||
.ignore_suspend = 1,
|
||||
/* this dailink has playback support */
|
||||
.ignore_pmdown_time = 1,
|
||||
.codec_dai_name = "snd-soc-dummy-dai",
|
||||
.codec_name = "snd-soc-dummy",
|
||||
},
|
||||
{
|
||||
.name = "MSM AFE-PCM RX",
|
||||
.stream_name = "AFE-PROXY RX",
|
||||
|
|
Loading…
Add table
Reference in a new issue