aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorFrancois Mazard <f-mazard@ti.com>2011-03-01 17:08:32 +0100
committerZiyann <jaraidaniel@gmail.com>2014-10-01 13:00:02 +0200
commite2e72d6e42b93ffedf85dd9d6213ed9bb4f83149 (patch)
tree417c30b67ffe01c61c81938864dc75ecad7dccca /sound
parent2f7d53cc3edde93cd1b3672cd4f6d27314056ee4 (diff)
downloadkernel_samsung_tuna-e2e72d6e42b93ffedf85dd9d6213ed9bb4f83149.zip
kernel_samsung_tuna-e2e72d6e42b93ffedf85dd9d6213ed9bb4f83149.tar.gz
kernel_samsung_tuna-e2e72d6e42b93ffedf85dd9d6213ed9bb4f83149.tar.bz2
ASoc: ABE VxREC: use VxREC audio back-end
VxREC is the back-end of MM_UL and MM_UL2. VxREC back-end represents the Vx_REC input of the ROUTE_UL. Vx_REC can be mono or stereo input even it mixes different inputs such as Vx_UL, Vx_DL, TONES_DL and MM_DL. This audio BE needs to start even none of its inputs are enable. This is to avoid any cross-dependencies between VxREC and Vx_UL, Vx_DL, TONES_DL and MM_DL that could make userspace code much more complex. Change-Id: Iebe8189951b9b77944f7ff8f180c7d977ecbef00 Signed-off-by: Francois Mazard <f-mazard@ti.com> Signed-off-by: Pierre Moos <p-moos@ti.com> Conflicts: sound/soc/omap/sdp4430.c
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/omap/omap-abe-dsp.c11
-rw-r--r--sound/soc/omap/omap-abe-dsp.h5
-rw-r--r--sound/soc/omap/omap-abe.h4
-rwxr-xr-xsound/soc/omap/sdp4430.c16
4 files changed, 29 insertions, 7 deletions
diff --git a/sound/soc/omap/omap-abe-dsp.c b/sound/soc/omap/omap-abe-dsp.c
index 0ebe2a6..f522de3 100644
--- a/sound/soc/omap/omap-abe-dsp.c
+++ b/sound/soc/omap/omap-abe-dsp.c
@@ -1301,6 +1301,8 @@ static const struct snd_soc_dapm_widget abe_dapm_widgets[] = {
W_AIF_DMIC1, ABE_OPP_50, 0),
SND_SOC_DAPM_AIF_IN("DMIC2", "DMIC2 Capture", 0,
W_AIF_DMIC2, ABE_OPP_50, 0),
+ SND_SOC_DAPM_AIF_IN("VXREC", "VXREC Capture", 0,
+ W_AIF_VXREC, ABE_OPP_50, 0),
/* ROUTE_UL Capture Muxes */
SND_SOC_DAPM_MUX("MUX_UL00",
@@ -1630,10 +1632,10 @@ static const struct snd_soc_dapm_route intercon[] = {
{"PDM_DL2", NULL, "DL2 Mixer"},
/* VxREC Mixer */
- {"Capture Mixer", "Tones", "TONES_DL"},
- {"Capture Mixer", "Voice Playback", "VX DL VMixer"},
- {"Capture Mixer", "Voice Capture", "VX UL VMixer"},
- {"Capture Mixer", "Media Playback", "MM_DL VMixer"},
+ {"Capture Mixer", "Tones", "VXREC"},
+ {"Capture Mixer", "Voice Playback", "VXREC"},
+ {"Capture Mixer", "Voice Capture", "VXREC"},
+ {"Capture Mixer", "Media Playback", "VXREC"},
{"MM_DL VMixer", NULL, "MM_DL"},
{"MM_DL VMixer", NULL, "MM_DL_LP"},
@@ -1670,6 +1672,7 @@ static const struct snd_soc_dapm_route intercon[] = {
{"DMIC0", NULL, "BE_IN"},
{"DMIC1", NULL, "BE_IN"},
{"DMIC2", NULL, "BE_IN"},
+ {"VXREC", NULL, "BE_IN"},
};
#ifdef CONFIG_DEBUG_FS
diff --git a/sound/soc/omap/omap-abe-dsp.h b/sound/soc/omap/omap-abe-dsp.h
index 8462290..afcc052 100644
--- a/sound/soc/omap/omap-abe-dsp.h
+++ b/sound/soc/omap/omap-abe-dsp.h
@@ -96,6 +96,7 @@
#define W_AIF_DMIC0 ABE_WIDGET(17)
#define W_AIF_DMIC1 ABE_WIDGET(18)
#define W_AIF_DMIC2 ABE_WIDGET(19)
+#define W_AIF_VXREC ABE_WIDGET(41)
/* ABE ROUTE_UL MUX Widgets */
#define W_MUX_UL00 ABE_WIDGET(20)
@@ -122,8 +123,8 @@
#define W_VSWITCH_DL1_BT_VX ABE_WIDGET(39)
#define W_VSWITCH_DL1_MM_EXT ABE_WIDGET(40)
-#define ABE_NUM_WIDGETS (W_VSWITCH_DL1_MM_EXT - W_AIF_TONES_DL)
-#define ABE_WIDGET_LAST W_VSWITCH_DL1_MM_EXT
+#define ABE_NUM_WIDGETS (W_AIF_VXREC - W_AIF_TONES_DL)
+#define ABE_WIDGET_LAST W_AIF_VXREC
#define ABE_NUM_DAPM_REG \
(ABE_NUM_MIXERS + ABE_NUM_MUXES + ABE_NUM_WIDGETS)
diff --git a/sound/soc/omap/omap-abe.h b/sound/soc/omap/omap-abe.h
index 91c5f1d..483995d 100644
--- a/sound/soc/omap/omap-abe.h
+++ b/sound/soc/omap/omap-abe.h
@@ -44,7 +44,8 @@
#define OMAP_ABE_DAI_DMIC0 7
#define OMAP_ABE_DAI_DMIC1 8
#define OMAP_ABE_DAI_DMIC2 9
-#define OMAP_ABE_DAI_NUM 10
+#define OMAP_ABE_DAI_VXREC 10
+#define OMAP_ABE_DAI_NUM 11
#define OMAP_ABE_BE_PDM_DL1 "PDM-DL1"
#define OMAP_ABE_BE_PDM_UL1 "PDM-UL1"
@@ -57,6 +58,7 @@
#define OMAP_ABE_BE_DMIC0 "DMIC0"
#define OMAP_ABE_BE_DMIC1 "DMIC1"
#define OMAP_ABE_BE_DMIC2 "DMIC2"
+#define OMAP_ABE_BE_VXREC "VXREC"
#define OMAP_ABE_DL1_NO_PDM 0
#define OMAP_ABE_DL1_HEADSET_LP 1
diff --git a/sound/soc/omap/sdp4430.c b/sound/soc/omap/sdp4430.c
index ece0d24..cc09a50 100755
--- a/sound/soc/omap/sdp4430.c
+++ b/sound/soc/omap/sdp4430.c
@@ -924,6 +924,22 @@ static struct snd_soc_dai_link sdp4430_dai[] = {
.be_id = OMAP_ABE_DAI_MODEM,
.ignore_suspend = 1,
},
+ {
+ .name = OMAP_ABE_BE_VXREC,
+ .stream_name = "VXREC Capture",
+
+ /* ABE components - VxREC */
+ .cpu_dai_name = "omap-abe-vxrec-dai",
+ .platform_name = "aess",
+
+ /* no codec needed */
+ .codec_dai_name = "null-codec-dai",
+
+ .no_pcm = 1, /* don't create ALSA pcm for this */
+ .no_codec = 1,
+ .be_id = OMAP_ABE_DAI_VXREC,
+ .ignore_suspend = 1,
+ },
};
/* Audio machine driver */