Merge branch 'android-msm-pixel-4.14-tm-security' into android-msm-pixel-4.14-tm

OCT 2022.1

Bug: 237547109
Change-Id: Ibb7b64b0bde349ad526e6a2405bade69b4574b6d
diff --git a/asoc/msm-pcm-q6-noirq.c b/asoc/msm-pcm-q6-noirq.c
index 7ef99e7..a09aa3f 100644
--- a/asoc/msm-pcm-q6-noirq.c
+++ b/asoc/msm-pcm-q6-noirq.c
@@ -728,7 +728,7 @@
 		return -ENODEV;
 	}
 
-	substream = vol->pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream;
+	substream = vol->pcm->streams[vol->stream].substream;
 
 	if (!substream) {
 		pr_err("%s substream not found\n", __func__);
@@ -777,7 +777,7 @@
 		return -ENODEV;
 	}
 
-	substream = vol->pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream;
+	substream = vol->pcm->streams[vol->stream].substream;
 	pr_debug("%s: volume : 0x%x\n", __func__, volume);
 	if (!substream) {
 		pr_err("%s substream not found\n", __func__);
@@ -806,17 +806,16 @@
 	return rc;
 }
 
-static int msm_pcm_add_volume_control(struct snd_soc_pcm_runtime *rtd)
+static int msm_pcm_add_volume_control(struct snd_soc_pcm_runtime *rtd, int stream)
 {
 	int ret = 0;
 	struct snd_pcm *pcm = rtd->pcm;
 	struct snd_pcm_volume *volume_info;
 	struct snd_kcontrol *kctl;
 
-	dev_dbg(rtd->dev, "%s, Volume control add\n", __func__);
-	ret = snd_pcm_add_volume_ctls(pcm, SNDRV_PCM_STREAM_PLAYBACK,
-			NULL, 1, rtd->dai_link->id,
-			&volume_info);
+	dev_dbg(rtd->dev, "%s, volume control add\n", __func__);
+	ret = snd_pcm_add_volume_ctls(pcm, stream,
+			NULL, 1, rtd->dai_link->id, &volume_info);
 	if (ret < 0) {
 		pr_err("%s volume control failed ret %d\n", __func__, ret);
 		return ret;
@@ -1307,12 +1306,16 @@
 		pr_err("%s: Could not add pcm Channel Map Control\n",
 			__func__);
 
-	ret = msm_pcm_add_volume_control(rtd);
+	ret = msm_pcm_add_volume_control(rtd, SNDRV_PCM_STREAM_PLAYBACK);
 	if (ret) {
-		pr_err("%s: Could not add pcm Volume Control %d\n",
+		pr_err("%s: Could not add pcm playback volume Control %d\n",
 			__func__, ret);
 	}
-
+	ret = msm_pcm_add_volume_control(rtd, SNDRV_PCM_STREAM_CAPTURE);
+	if (ret) {
+		pr_err("%s: Could not add pcm capture volume Control %d\n",
+			__func__, ret);
+	}
 	ret = msm_pcm_add_fe_topology_control(rtd);
 	if (ret) {
 		pr_err("%s: Could not add pcm topology control %d\n",