ASoC: WCD9304: Enable Digital MIC recording

While selecting TX port1 to perform recording using Digital
MIC1, the TX port1 control register on WCD9304 was not being
programmed to specify the DMIC1 connection for the tx port.
Fix by correcting the register sequence for enabling Digital
 MIC 1 on WCD9304 and enable channel corresponding to TX port1

Change-Id: I4317a595be4e45c411dfec264c1b9a3d71eb2aec
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
diff --git a/sound/soc/codecs/wcd9304.c b/sound/soc/codecs/wcd9304.c
index 5ce83b5..3229bce 100644
--- a/sound/soc/codecs/wcd9304.c
+++ b/sound/soc/codecs/wcd9304.c
@@ -853,7 +853,7 @@
 	struct snd_kcontrol *kcontrol, int event)
 {
 	struct snd_soc_codec *codec = w->codec;
-	u16 tx_dmic_ctl_reg;
+	u16 tx_dmic_ctl_reg, tx_mux_ctl_reg;
 	u8 dmic_clk_sel, dmic_clk_en;
 	unsigned int dmic;
 	int ret;
@@ -883,12 +883,15 @@
 		return -EINVAL;
 	}
 
+	tx_mux_ctl_reg = SITAR_A_CDC_TX1_MUX_CTL + 8 * (dmic - 1);
 	tx_dmic_ctl_reg = SITAR_A_CDC_TX1_DMIC_CTL + 8 * (dmic - 1);
 
 	pr_err("%s %d\n", __func__, event);
 
 	switch (event) {
 	case SND_SOC_DAPM_PRE_PMU:
+		snd_soc_update_bits(codec, tx_mux_ctl_reg, 0x01, 0x01);
+
 		snd_soc_update_bits(codec, SITAR_A_CDC_CLK_DMIC_CTL,
 				dmic_clk_sel, dmic_clk_sel);
 
@@ -900,6 +903,8 @@
 	case SND_SOC_DAPM_POST_PMD:
 		snd_soc_update_bits(codec, SITAR_A_CDC_CLK_DMIC_CTL,
 				dmic_clk_en, 0);
+
+		snd_soc_update_bits(codec, tx_mux_ctl_reg, 0x01, 0x00);
 		break;
 	}
 	return 0;
@@ -2243,7 +2248,7 @@
 	} else if (dai->id == AIF1_CAP) {
 		*tx_num = sitar_dai[dai->id - 1].capture.channels_max;
 		while (cnt < *tx_num) {
-			tx_slot[cnt] = tx_ch[1 + cnt];
+			tx_slot[cnt] = tx_ch[cnt];
 			cnt++;
 		}
 	}