[alsa-devel] [PATCH] ASoC: Intel: bxt: Use refcap device for mono recording

Yong Zhi yong.zhi at intel.com
Wed Aug 1 19:03:59 CEST 2018


The refcap capture device supports mono recording only, this patch
adds the channel constraints, also change stream_name to "Wake on Voice".

Signed-off-by: Yong Zhi <yong.zhi at intel.com>
---
 sound/soc/intel/boards/bxt_da7219_max98357a.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/sound/soc/intel/boards/bxt_da7219_max98357a.c b/sound/soc/intel/boards/bxt_da7219_max98357a.c
index be6e4b4..097a089 100644
--- a/sound/soc/intel/boards/bxt_da7219_max98357a.c
+++ b/sound/soc/intel/boards/bxt_da7219_max98357a.c
@@ -319,6 +319,15 @@ static const unsigned int rates_16000[] = {
 	16000,
 };
 
+static const unsigned int ch_mono[] = {
+	1,
+};
+
+static const struct snd_pcm_hw_constraint_list constraints_refcap = {
+	.count = ARRAY_SIZE(ch_mono),
+	.list  = ch_mono,
+};
+
 static const struct snd_pcm_hw_constraint_list constraints_16000 = {
 	.count = ARRAY_SIZE(rates_16000),
 	.list  = rates_16000,
@@ -326,6 +335,11 @@ static const struct snd_pcm_hw_constraint_list constraints_16000 = {
 
 static int broxton_refcap_startup(struct snd_pcm_substream *substream)
 {
+	substream->runtime->hw.channels_max = 1;
+	snd_pcm_hw_constraint_list(substream->runtime, 0,
+				   SNDRV_PCM_HW_PARAM_CHANNELS,
+				   &constraints_refcap);
+
 	return snd_pcm_hw_constraint_list(substream->runtime, 0,
 			SNDRV_PCM_HW_PARAM_RATE,
 			&constraints_16000);
@@ -372,7 +386,7 @@ static struct snd_soc_dai_link broxton_dais[] = {
 	[BXT_DPCM_AUDIO_REF_CP] =
 	{
 		.name = "Bxt Audio Reference cap",
-		.stream_name = "Refcap",
+		.stream_name = "Wake on Voice",
 		.cpu_dai_name = "Reference Pin",
 		.codec_name = "snd-soc-dummy",
 		.codec_dai_name = "snd-soc-dummy-dai",
-- 
2.7.4



More information about the Alsa-devel mailing list