Przeglądaj źródła

asoc: add fe-dai multimedia31/32/33/34 and routing rules

Add more FE-DAI to support concurrent audio for
lxc host and containers.

Change-Id: I8988a9e15675b23a99621db12ee9a4b500c4a12b
Signed-off-by: Guodong Hu <[email protected]>
Guodong Hu 4 lat temu
rodzic
commit
84e0e29f39
3 zmienionych plików z 1039 dodań i 183 usunięć
  1. 94 0
      asoc/msm-dai-fe.c
  2. 943 183
      asoc/msm-pcm-routing-v2.c
  3. 2 0
      asoc/msm-pcm-routing-v2.h

+ 94 - 0
asoc/msm-dai-fe.c

@@ -2936,6 +2936,20 @@ static struct snd_soc_dai_driver msm_fe_dais[] = {
 			.rate_min =     8000,
 			.rate_max =     384000,
 		},
+		.capture = {
+			.stream_name = "MultiMedia31 Capture",
+			.aif_name = "MM_UL31",
+			.rates = (SNDRV_PCM_RATE_8000_384000 |
+				  SNDRV_PCM_RATE_KNOT),
+			.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 = 32,
+			.rate_min = 8000,
+			.rate_max = 48000,
+		},
 		.ops = &msm_fe_Multimedia_dai_ops,
 		.name = "MultiMedia31",
 		.probe = fe_dai_probe,
@@ -2955,10 +2969,90 @@ static struct snd_soc_dai_driver msm_fe_dais[] = {
 			.rate_min =     8000,
 			.rate_max =     384000,
 		},
+		.capture = {
+			.stream_name = "MultiMedia32 Capture",
+			.aif_name = "MM_UL32",
+			.rates = (SNDRV_PCM_RATE_8000_384000 |
+				  SNDRV_PCM_RATE_KNOT),
+			.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 = 32,
+			.rate_min = 8000,
+			.rate_max = 48000,
+		},
 		.ops = &msm_fe_Multimedia_dai_ops,
 		.name = "MultiMedia32",
 		.probe = fe_dai_probe,
 	},
+	{
+		.playback = {
+			.stream_name = "MultiMedia33 Playback",
+			.aif_name = "MM_DL33",
+			.rates = (SNDRV_PCM_RATE_8000_384000 |
+				  SNDRV_PCM_RATE_KNOT),
+			.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 = 32,
+			.rate_min = 8000,
+			.rate_max = 384000,
+		},
+		.capture = {
+			.stream_name = "MultiMedia33 Capture",
+			.aif_name = "MM_UL33",
+			.rates = (SNDRV_PCM_RATE_8000_384000 |
+				  SNDRV_PCM_RATE_KNOT),
+			.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 = 32,
+			.rate_min = 8000,
+			.rate_max = 48000,
+		},
+		.ops = &msm_fe_Multimedia_dai_ops,
+		.name = "MultiMedia33",
+		.probe = fe_dai_probe,
+	},
+	{
+		.playback = {
+			.stream_name = "MultiMedia34 Playback",
+			.aif_name = "MM_DL34",
+			.rates = (SNDRV_PCM_RATE_8000_384000 |
+				  SNDRV_PCM_RATE_KNOT),
+			.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 = 32,
+			.rate_min = 8000,
+			.rate_max = 384000,
+		},
+		.capture = {
+			.stream_name = "MultiMedia34 Capture",
+			.aif_name = "MM_UL34",
+			.rates = (SNDRV_PCM_RATE_8000_384000 |
+				  SNDRV_PCM_RATE_KNOT),
+			.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 = 32,
+			.rate_min = 8000,
+			.rate_max = 48000,
+		},
+		.ops = &msm_fe_Multimedia_dai_ops,
+		.name = "MultiMedia34",
+		.probe = fe_dai_probe,
+	},
 };
 
 static int msm_fe_dai_dev_probe(struct platform_device *pdev)

Plik diff jest za duży
+ 943 - 183
asoc/msm-pcm-routing-v2.c


+ 2 - 0
asoc/msm-pcm-routing-v2.h

@@ -274,6 +274,8 @@ enum {
 	MSM_FRONTEND_DAI_MULTIMEDIA30,
 	MSM_FRONTEND_DAI_MULTIMEDIA31,
 	MSM_FRONTEND_DAI_MULTIMEDIA32,
+	MSM_FRONTEND_DAI_MULTIMEDIA33,
+	MSM_FRONTEND_DAI_MULTIMEDIA34,
 	MSM_FRONTEND_DAI_VOIP,
 	MSM_FRONTEND_DAI_AFE_RX,
 	MSM_FRONTEND_DAI_AFE_TX,

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików