ASoC: Intel: Skylake: Use refcap device for mono recording
authorYong Zhi <yong.zhi@intel.com>
Tue, 17 May 2016 16:43:05 +0000 (09:43 -0700)
committerMark Brown <broonie@kernel.org>
Mon, 30 May 2016 15:15:45 +0000 (16:15 +0100)
Only mono channel is allowed for refcap device.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/skl_nau88l25_ssm4567.c

index e19aa99c4f7246914fafd1819e561f3b60c7b250..2647d885ee0041e265c1a5b29db0ad5a5c8c9c65 100644 (file)
@@ -430,8 +430,22 @@ static struct snd_pcm_hw_constraint_list constraints_16000 = {
        .list  = rates_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 int skylake_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);