Commit 7bb73cbd authored by Jie Yang's avatar Jie Yang Committed by Mark Brown

ASoC: Intel: Move capture PCM pin to PCM0 for Broadwell/Haswell

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: default avatarJie Yang <yang.jie@intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent c5f0406b
...@@ -171,7 +171,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = { ...@@ -171,7 +171,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
/* Front End DAI links */ /* Front End DAI links */
{ {
.name = "System PCM", .name = "System PCM",
.stream_name = "System Playback", .stream_name = "System Playback/Capture",
.cpu_dai_name = "System Pin", .cpu_dai_name = "System Pin",
.platform_name = "haswell-pcm-audio", .platform_name = "haswell-pcm-audio",
.dynamic = 1, .dynamic = 1,
...@@ -180,6 +180,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = { ...@@ -180,6 +180,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
.init = broadwell_rtd_init, .init = broadwell_rtd_init,
.trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST}, .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
.dpcm_playback = 1, .dpcm_playback = 1,
.dpcm_capture = 1,
}, },
{ {
.name = "Offload0", .name = "Offload0",
...@@ -214,18 +215,6 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = { ...@@ -214,18 +215,6 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
.trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST}, .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
.dpcm_capture = 1, .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 */ /* Back End DAI links */
{ {
/* SSP0 - Codec */ /* SSP0 - Codec */
......
...@@ -109,7 +109,7 @@ static struct snd_soc_dai_link haswell_rt5640_dais[] = { ...@@ -109,7 +109,7 @@ static struct snd_soc_dai_link haswell_rt5640_dais[] = {
/* Front End DAI links */ /* Front End DAI links */
{ {
.name = "System", .name = "System",
.stream_name = "System Playback", .stream_name = "System Playback/Capture",
.cpu_dai_name = "System Pin", .cpu_dai_name = "System Pin",
.platform_name = "haswell-pcm-audio", .platform_name = "haswell-pcm-audio",
.dynamic = 1, .dynamic = 1,
...@@ -118,6 +118,7 @@ static struct snd_soc_dai_link haswell_rt5640_dais[] = { ...@@ -118,6 +118,7 @@ static struct snd_soc_dai_link haswell_rt5640_dais[] = {
.init = haswell_rtd_init, .init = haswell_rtd_init,
.trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST}, .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
.dpcm_playback = 1, .dpcm_playback = 1,
.dpcm_capture = 1,
}, },
{ {
.name = "Offload0", .name = "Offload0",
...@@ -152,17 +153,6 @@ static struct snd_soc_dai_link haswell_rt5640_dais[] = { ...@@ -152,17 +153,6 @@ static struct snd_soc_dai_link haswell_rt5640_dais[] = {
.trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST}, .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
.dpcm_capture = 1, .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 */ /* Back End DAI links */
{ {
......
...@@ -309,7 +309,7 @@ static const struct snd_kcontrol_new hsw_volume_controls[] = { ...@@ -309,7 +309,7 @@ static const struct snd_kcontrol_new hsw_volume_controls[] = {
ARRAY_SIZE(volume_map) - 1, 0, ARRAY_SIZE(volume_map) - 1, 0,
hsw_stream_volume_get, hsw_stream_volume_put, hsw_vol_tlv), hsw_stream_volume_get, hsw_stream_volume_put, hsw_vol_tlv),
/* Mic Capture volume */ /* 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, ARRAY_SIZE(volume_map) - 1, 0,
hsw_stream_volume_get, hsw_stream_volume_put, hsw_vol_tlv), 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, ...@@ -396,8 +396,14 @@ static int hsw_pcm_hw_params(struct snd_pcm_substream *substream,
/* DSP stream type depends on DAI ID */ /* DSP stream type depends on DAI ID */
switch (rtd->cpu_dai->id) { switch (rtd->cpu_dai->id) {
case 0: case 0:
stream_type = SST_HSW_STREAM_TYPE_SYSTEM; if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
module_id = SST_HSW_MODULE_PCM_SYSTEM; 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; break;
case 1: case 1:
case 2: case 2:
...@@ -410,10 +416,6 @@ static int hsw_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -410,10 +416,6 @@ static int hsw_pcm_hw_params(struct snd_pcm_substream *substream,
path_id = SST_HSW_STREAM_PATH_SSP0_OUT; path_id = SST_HSW_STREAM_PATH_SSP0_OUT;
module_id = SST_HSW_MODULE_PCM_REFERENCE; module_id = SST_HSW_MODULE_PCM_REFERENCE;
break; break;
case 4:
stream_type = SST_HSW_STREAM_TYPE_CAPTURE;
module_id = SST_HSW_MODULE_PCM_CAPTURE;
break;
default: default:
dev_err(rtd->dev, "error: invalid DAI ID %d\n", dev_err(rtd->dev, "error: invalid DAI ID %d\n",
rtd->cpu_dai->id); rtd->cpu_dai->id);
...@@ -781,6 +783,13 @@ static struct snd_soc_dai_driver hsw_dais[] = { ...@@ -781,6 +783,13 @@ static struct snd_soc_dai_driver hsw_dais[] = {
.rates = SNDRV_PCM_RATE_48000, .rates = SNDRV_PCM_RATE_48000,
.formats = SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE, .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 */ /* PCM */
...@@ -817,17 +826,6 @@ static struct snd_soc_dai_driver hsw_dais[] = { ...@@ -817,17 +826,6 @@ static struct snd_soc_dai_driver hsw_dais[] = {
.formats = SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE, .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[] = { static const struct snd_soc_dapm_widget widgets[] = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment