aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNelson Victor Cruz Hernandez <nelson.v.cruz.hernandez@intel.com>2015-09-29 07:20:51 -0500
committerMihai Serban <mihai.serban@intel.com>2016-01-07 17:54:54 +0200
commit875095b97f092405a154c72ec9b7fa811e7587c8 (patch)
tree78e5199553e2918f120bee9f67d99d5c965363c8
parentee8e6ffcbf71bc467e472996282d8f0652d03270 (diff)
downloadminnowboard-v3.14-875095b97f092405a154c72ec9b7fa811e7587c8.tar.gz
ASoC:Intel:BYT: Enables Deep buffer feature
Add deep buffer DAI link to the machine driver. Additionally enables mixers in DAPM matrix. Change-Id: I15e4fe9a34b89007efdf4dd378fed9bbff8ae440 Tracked-On: https://jira01.devtools.intel.com/browse/OAM-4150 Signed-off-by: Nelson Victor Cruz Hernandez <nelson.v.cruz.hernandez@intel.com> Signed-off-by: Francisco Mendez <francisco.mendez@intel.com>
-rw-r--r--arch/x86/include/asm/platform_byt_audio.h1
-rw-r--r--sound/soc/intel/board/byt_cr_dpcm_rt5640.c12
-rw-r--r--sound/soc/intel/platform-libs/controls_v2_dpcm.c5
-rw-r--r--sound/soc/intel/sst/sst_platform.c2
4 files changed, 20 insertions, 0 deletions
diff --git a/arch/x86/include/asm/platform_byt_audio.h b/arch/x86/include/asm/platform_byt_audio.h
index 29ebc2f5f6e..74d31575c94 100644
--- a/arch/x86/include/asm/platform_byt_audio.h
+++ b/arch/x86/include/asm/platform_byt_audio.h
@@ -14,6 +14,7 @@
enum {
BYT_DPCM_AUDIO = 0,
+ BYT_DPCM_DB,
BYT_DPCM_VOIP,
};
diff --git a/sound/soc/intel/board/byt_cr_dpcm_rt5640.c b/sound/soc/intel/board/byt_cr_dpcm_rt5640.c
index edeaa858127..27a3b0ea7cf 100644
--- a/sound/soc/intel/board/byt_cr_dpcm_rt5640.c
+++ b/sound/soc/intel/board/byt_cr_dpcm_rt5640.c
@@ -914,6 +914,18 @@ static struct snd_soc_dai_link byt_dailink[] = {
.dynamic = 1,
.ops = &byt_aif1_ops,
},
+ [BYT_DPCM_DB] = {
+ .name = "Baytrail DB Audio Port",
+ .stream_name = "Deep Buffer Audio",
+ .cpu_dai_name = "Deepbuffer-cpu-dai",
+ .codec_dai_name = "snd-soc-dummy-dai",
+ .codec_name = "snd-soc-dummy",
+ .platform_name = "sst-platform",
+ .ignore_suspend = 1,
+ .dynamic = 1,
+ .ops = &byt_aif1_ops,
+ .dpcm_playback = 1,
+ },
[BYT_DPCM_VOIP] = {
.name = "Baytrail VOIP Port",
.stream_name = "Baytrail Voip",
diff --git a/sound/soc/intel/platform-libs/controls_v2_dpcm.c b/sound/soc/intel/platform-libs/controls_v2_dpcm.c
index b70cc2fcd2c..7a017443b4e 100644
--- a/sound/soc/intel/platform-libs/controls_v2_dpcm.c
+++ b/sound/soc/intel/platform-libs/controls_v2_dpcm.c
@@ -1809,11 +1809,16 @@ static const struct snd_soc_dapm_widget sst_dapm_widgets[] = {
static const struct snd_soc_dapm_route intercon[] = {
{"media1_in", NULL, "Headset Playback"},
{"media2_in", NULL, "pcm0_out"},
+ {"media3_in", NULL, "Deepbuffer Playback"},
+ {"media0_out mix 0", "media0_in", "media0_in"},
{"media0_out mix 0", "media1_in", "media1_in"},
{"media0_out mix 0", "media2_in", "media2_in"},
+ {"media0_out mix 0", "media3_in", "media3_in"},
+ {"media1_out mix 0", "media0_in", "media0_in"},
{"media1_out mix 0", "media1_in", "media1_in"},
{"media1_out mix 0", "media2_in", "media2_in"},
+ {"media1_out mix 0", "media3_in", "media3_in"},
{"media0_out", NULL, "media0_out mix 0"},
{"media1_out", NULL, "media1_out mix 0"},
diff --git a/sound/soc/intel/sst/sst_platform.c b/sound/soc/intel/sst/sst_platform.c
index bc009aab7f2..0083d7c3fed 100644
--- a/sound/soc/intel/sst/sst_platform.c
+++ b/sound/soc/intel/sst/sst_platform.c
@@ -31,6 +31,8 @@ static struct sst_dev_stream_map dpcm_strm_map_byt[] = {
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, /* Reserved, not in use */
{BYT_DPCM_AUDIO, 0, SNDRV_PCM_STREAM_PLAYBACK, PIPE_MEDIA1_IN,
SST_TASK_ID_MEDIA, SST_DEV_MAP_IN_USE},
+ {BYT_DPCM_DB, 0, SNDRV_PCM_STREAM_PLAYBACK, PIPE_MEDIA3_IN,
+ SST_TASK_ID_MEDIA, SST_DEV_MAP_IN_USE},
{BYT_DPCM_VOIP, 0, SNDRV_PCM_STREAM_PLAYBACK, PIPE_VOIP_IN,
SST_TASK_ID_MEDIA, SST_DEV_MAP_IN_USE},
{BYT_DPCM_AUDIO, 0, SNDRV_PCM_STREAM_CAPTURE, PIPE_PCM1_OUT,