Skip to contentSkip to conversation

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

PATCH Superseded Jie Yang 2 participants 4 messages Nov 28, 2014

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Jie Yang

author
#0 lore raw

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

Move capture PCM pin from PCM4 to PCM0 for Broadwell. This will allow us to integrate with pulseaudio better for usually default device is set to 0.

---
 sound/soc/intel/broadwell.c       | 15 ++-------------
 sound/soc/intel/sst-haswell-pcm.c | 34 ++++++++++++++++------------------
 2 files changed, 18 insertions(+), 31 deletions(-)
sound/soc/intel/broadwell.c +2 -13
index 52cb764..c256764 100644
@@ -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 */
sound/soc/intel/sst-haswell-pcm.c +16 -18
index 5f70d81..0180b38 100644
@@ -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);
@@ -779,6 +781,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 */
@@ -815,17 +824,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[] = {
Signature · 1 line
1.9.1
maintainer
#1 lore raw
Quoted 3 lines · Jie Yang

Move capture PCM pin from PCM4 to PCM0 for Broadwell. This will allow us to integrate with pulseaudio better for usually default device is set to 0.

This doesn't apply, please check and resend.

author
#2 lore raw

Hi Mark,

Thanks for reviewing. Seems it need to be applied after commit ' [PATCH] ASoC: Intel: Correct the xmax volume' is accepted. I can apply it base on the commit 1e2f1a5f8c4826e3d09fd67dec5f09e64b25c0d5.

Regards,
~Keyon

Quoted 13 lines

-----Original Message-----
From: Mark Brown [mailto:[email protected]]
Sent: Friday, November 28, 2014 7:40 PM
To: Jie, Yang
Cc: [email protected]; Girdwood, Liam R
Subject: Re: [PATCH] ASoC: Intel: Move capture PCM pin to PCM0 for Broadwell

Quoted 3 lines · Jie Yang

Move capture PCM pin from PCM4 to PCM0 for Broadwell. This will allow us to integrate with pulseaudio better for usually default device is set to 0.

This doesn't apply, please check and resend.

author
#3 lore raw
In reply to Mark Brown

Hi Mark,

Please ignore my previous mail. Liam comment that it's better to update the haswell machine driver at the same time.

Will resend v2 for the patch.

Thanks,
~Keyon

Quoted 33 lines

-----Original Message-----
From: Jie, Yang
Sent: Friday, November 28, 2014 8:00 PM
To: 'Mark Brown'
Cc: [email protected]; Girdwood, Liam R
Subject: RE: [PATCH] ASoC: Intel: Move capture PCM pin to PCM0 for Broadwell

Hi Mark,

Thanks for reviewing. Seems it need to be applied after commit ' [PATCH] ASoC:
Intel: Correct the xmax volume' is accepted.
I can apply it base on the commit 1e2f1a5f8c4826e3d09fd67dec5f09e64b25c0d5.

Regards,
~Keyon

Quoted 14 lines

-----Original Message-----
From: Mark Brown [mailto:[email protected]]
Sent: Friday, November 28, 2014 7:40 PM
To: Jie, Yang
Cc: [email protected]; Girdwood, Liam R
Subject: Re: [PATCH] ASoC: Intel: Move capture PCM pin to PCM0 for Broadwell

Quoted 3 lines · Jie Yang

Move capture PCM pin from PCM4 to PCM0 for Broadwell. This will allow us to integrate with pulseaudio better for usually default device is set to 0.

This doesn't apply, please check and resend.