ASoC: Intel: Move capture PCM pin to PCM0 for Broadwell/Haswell
authorJie Yang <yang.jie@intel.com>
Fri, 28 Nov 2014 13:52:11 +0000 (21:52 +0800)
committerMark Brown <broonie@kernel.org>
Fri, 28 Nov 2014 15:35:04 +0000 (15:35 +0000)
Move capture PCM pin from PCM4 to PCM0 for Broadwell/Haswell.
This will allow us to integrate with pulseaudio better for
usually default device is set to 0.

Signed-off-by: Jie Yang <yang.jie@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/broadwell.c
sound/soc/intel/haswell.c
sound/soc/intel/sst-haswell-pcm.c

index 52cb764..c256764 100644 (file)
@@ -171,7 +171,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
        /* Front End DAI links */
        {
                .name = "System PCM",
-               .stream_name = "System Playback",
+               .stream_name = "System Playback/Capture",
                .cpu_dai_name = "System Pin",
                .platform_name = "haswell-pcm-audio",
                .dynamic = 1,
@@ -180,6 +180,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
                .init = broadwell_rtd_init,
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dpcm_playback = 1,
+               .dpcm_capture = 1,
        },
        {
                .name = "Offload0",
@@ -214,18 +215,6 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dpcm_capture = 1,
        },
-       {
-               .name = "Capture PCM",
-               .stream_name = "Capture",
-               .cpu_dai_name = "Capture Pin",
-               .platform_name = "haswell-pcm-audio",
-               .dynamic = 1,
-               .codec_name = "snd-soc-dummy",
-               .codec_dai_name = "snd-soc-dummy-dai",
-               .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
-               .dpcm_capture = 1,
-       },
-
        /* Back End DAI links */
        {
                /* SSP0 - Codec */
index 3981982..cb8a482 100644 (file)
@@ -109,7 +109,7 @@ static struct snd_soc_dai_link haswell_rt5640_dais[] = {
        /* Front End DAI links */
        {
                .name = "System",
-               .stream_name = "System Playback",
+               .stream_name = "System Playback/Capture",
                .cpu_dai_name = "System Pin",
                .platform_name = "haswell-pcm-audio",
                .dynamic = 1,
@@ -118,6 +118,7 @@ static struct snd_soc_dai_link haswell_rt5640_dais[] = {
                .init = haswell_rtd_init,
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dpcm_playback = 1,
+               .dpcm_capture = 1,
        },
        {
                .name = "Offload0",
@@ -152,17 +153,6 @@ static struct snd_soc_dai_link haswell_rt5640_dais[] = {
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dpcm_capture = 1,
        },
-       {
-               .name = "Capture",
-               .stream_name = "Capture",
-               .cpu_dai_name = "Capture Pin",
-               .platform_name = "haswell-pcm-audio",
-               .dynamic = 1,
-               .codec_name = "snd-soc-dummy",
-               .codec_dai_name = "snd-soc-dummy-dai",
-               .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
-               .dpcm_capture = 1,
-       },
 
        /* Back End DAI links */
        {
index f993079..f6a9acf 100644 (file)
@@ -309,7 +309,7 @@ static const struct snd_kcontrol_new hsw_volume_controls[] = {
                ARRAY_SIZE(volume_map) - 1, 0,
                hsw_stream_volume_get, hsw_stream_volume_put, hsw_vol_tlv),
        /* Mic Capture volume */
-       SOC_DOUBLE_EXT_TLV("Mic Capture Volume", 4, 0, 8,
+       SOC_DOUBLE_EXT_TLV("Mic Capture Volume", 0, 0, 8,
                ARRAY_SIZE(volume_map) - 1, 0,
                hsw_stream_volume_get, hsw_stream_volume_put, hsw_vol_tlv),
 };
@@ -396,8 +396,14 @@ static int hsw_pcm_hw_params(struct snd_pcm_substream *substream,
        /* DSP stream type depends on DAI ID */
        switch (rtd->cpu_dai->id) {
        case 0:
-               stream_type = SST_HSW_STREAM_TYPE_SYSTEM;
-               module_id = SST_HSW_MODULE_PCM_SYSTEM;
+               if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
+                       stream_type = SST_HSW_STREAM_TYPE_SYSTEM;
+                       module_id = SST_HSW_MODULE_PCM_SYSTEM;
+               }
+               else {
+                       stream_type = SST_HSW_STREAM_TYPE_CAPTURE;
+                       module_id = SST_HSW_MODULE_PCM_CAPTURE;
+               }
                break;
        case 1:
        case 2:
@@ -410,10 +416,6 @@ static int hsw_pcm_hw_params(struct snd_pcm_substream *substream,
                path_id = SST_HSW_STREAM_PATH_SSP0_OUT;
                module_id = SST_HSW_MODULE_PCM_REFERENCE;
                break;
-       case 4:
-               stream_type = SST_HSW_STREAM_TYPE_CAPTURE;
-               module_id = SST_HSW_MODULE_PCM_CAPTURE;
-               break;
        default:
                dev_err(rtd->dev, "error: invalid DAI ID %d\n",
                        rtd->cpu_dai->id);
@@ -781,6 +783,13 @@ static struct snd_soc_dai_driver hsw_dais[] = {
                        .rates = SNDRV_PCM_RATE_48000,
                        .formats = SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE,
                },
+               .capture = {
+                       .stream_name = "Analog Capture",
+                       .channels_min = 2,
+                       .channels_max = 4,
+                       .rates = SNDRV_PCM_RATE_48000,
+                       .formats = SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE,
+               },
        },
        {
                /* PCM */
@@ -817,17 +826,6 @@ static struct snd_soc_dai_driver hsw_dais[] = {
                        .formats = SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE,
                },
        },
-       {
-               .name  = "Capture Pin",
-               .id = HSW_PCM_DAI_ID_CAPTURE,
-               .capture = {
-                       .stream_name = "Analog Capture",
-                       .channels_min = 2,
-                       .channels_max = 4,
-                       .rates = SNDRV_PCM_RATE_48000,
-                       .formats = SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE,
-               },
-       },
 };
 
 static const struct snd_soc_dapm_widget widgets[] = {