Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1689073

[PATCH 3/3] ASoC: codecs: msm8916-wcd-digital: fix dmic support

From srinivas.kandagatla@linaro.org
Newsgroups linux.kernel
Subject [PATCH 3/3] ASoC: codecs: msm8916-wcd-digital: fix dmic support
Date 2017-07-17 16:00 +0200
Message-ID <u4eJ4-5NI-19@gated-at.bofh.it> (permalink)
References <u4eJ4-5NI-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

This patch fixes dmic support which was broken in this driver.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/codecs/msm8916-wcd-digital.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/sound/soc/codecs/msm8916-wcd-digital.c b/sound/soc/codecs/msm8916-wcd-digital.c
index 126a0ee8aded..3265bd404fd7 100644
--- a/sound/soc/codecs/msm8916-wcd-digital.c
+++ b/sound/soc/codecs/msm8916-wcd-digital.c
@@ -168,6 +168,9 @@
 
 #define LPASS_CDC_TX2_VOL_CTL_CFG		(0x2A8)
 #define LPASS_CDC_TX1_MUX_CTL			(0x28C)
+#define TX_MUX_CTL_ADC_DMIC_SEL_MASK		BIT(0)
+#define TX_MUX_CTL_ADC_DMIC_SEL_DMIC		BIT(0)
+#define TX_MUX_CTL_ADC_DMIC_SEL_ADC		0
 #define TX_MUX_CTL_CUT_OFF_FREQ_MASK		GENMASK(5, 4)
 #define TX_MUX_CTL_CUT_OFF_FREQ_SHIFT		4
 #define TX_MUX_CTL_CF_NEG_3DB_4HZ		(0x0 << 4)
@@ -439,17 +442,37 @@ static int msm8916_wcd_digital_enable_dmic(struct snd_soc_dapm_widget *w,
 				    DMIC_B1_CTL_DMIC0_CLK_SEL_DIV3);
 		switch (dmic) {
 		case 1:
+			snd_soc_update_bits(codec, LPASS_CDC_TX1_MUX_CTL,
+					    TX_MUX_CTL_ADC_DMIC_SEL_MASK,
+					    TX_MUX_CTL_ADC_DMIC_SEL_DMIC);
 			snd_soc_update_bits(codec, LPASS_CDC_TX1_DMIC_CTL,
 					    TXN_DMIC_CTL_CLK_SEL_MASK,
 					    TXN_DMIC_CTL_CLK_SEL_DIV3);
 			break;
 		case 2:
+			snd_soc_update_bits(codec, LPASS_CDC_TX2_MUX_CTL,
+					    TX_MUX_CTL_ADC_DMIC_SEL_MASK,
+					    TX_MUX_CTL_ADC_DMIC_SEL_DMIC);
 			snd_soc_update_bits(codec, LPASS_CDC_TX2_DMIC_CTL,
 					    TXN_DMIC_CTL_CLK_SEL_MASK,
 					    TXN_DMIC_CTL_CLK_SEL_DIV3);
 			break;
 		}
 		break;
+	case SND_SOC_DAPM_POST_PMD:
+		switch (dmic) {
+		case 1:
+			snd_soc_update_bits(codec, LPASS_CDC_TX1_MUX_CTL,
+					    TX_MUX_CTL_ADC_DMIC_SEL_MASK,
+					    0);
+			break;
+		case 2:
+			snd_soc_update_bits(codec, LPASS_CDC_TX2_MUX_CTL,
+					    TX_MUX_CTL_ADC_DMIC_SEL_MASK,
+					    0);
+			break;
+		}
+		break;
 	}
 
 	return 0;
@@ -536,6 +559,8 @@ static const struct snd_soc_dapm_widget msm8916_wcd_digital_dapm_widgets[] = {
 	/* Connectivity Clock */
 	SND_SOC_DAPM_SUPPLY_S("CDC_CONN", -2, LPASS_CDC_CLK_OTHR_CTL, 2, 0,
 			      NULL, 0),
+	SND_SOC_DAPM_MIC("Digital Mic1", NULL),
+	SND_SOC_DAPM_MIC("Digital Mic2", NULL),
 
 };
 
-- 
2.11.0

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/3] ASoC: codecs: msm8916-wcd-digital: Fix dmic support srinivas.kandagatla@linaro.org - 2017-07-17 16:00 +0200
  [PATCH 3/3] ASoC: codecs: msm8916-wcd-digital: fix dmic support srinivas.kandagatla@linaro.org - 2017-07-17 16:00 +0200
    Re: [PATCH 3/3] ASoC: codecs: msm8916-wcd-digital: fix dmic support Mark Brown <broonie@kernel.org> - 2017-07-17 16:50 +0200
      Re: [PATCH 3/3] ASoC: codecs: msm8916-wcd-digital: fix dmic support Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2017-07-17 17:00 +0200
  [PATCH 1/3] ASoC: codecs: msm8916-wcd-digital: add support to set_sysclk srinivas.kandagatla@linaro.org - 2017-07-17 16:00 +0200
    Re: [PATCH 1/3] ASoC: codecs: msm8916-wcd-digital: add support to  set_sysclk Mark Brown <broonie@kernel.org> - 2017-07-17 16:50 +0200
      Re: [PATCH 1/3] ASoC: codecs: msm8916-wcd-digital: add support to  set_sysclk Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2017-07-17 17:00 +0200

csiph-web