Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1689072 > unrolled thread
| Started by | srinivas.kandagatla@linaro.org |
|---|---|
| First post | 2017-07-17 16:00 +0200 |
| Last post | 2017-07-17 17:00 +0200 |
| Articles | 7 — 3 participants |
Back to article view | Back to linux.kernel
[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
| From | srinivas.kandagatla@linaro.org |
|---|---|
| Date | 2017-07-17 16:00 +0200 |
| Subject | [PATCH 0/3] ASoC: codecs: msm8916-wcd-digital: Fix dmic support |
| Message-ID | <u4eJ4-5NI-3@gated-at.bofh.it> |
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> This patchset fixes dmic support in the codec driver, first and second patch fixes the mclk rate for the codec and the third patch adds few missing register writes to select dmic. Tested on DB410c with Audio Mezz board which has got dmic on it. Srinivas Kandagatla (3): ASoC: codecs: msm8916-wcd-digital: add support to set_sysclk ASoC: qcom: apq8016-sbc: set default mclk rate ASoC: codecs: msm8916-wcd-digital: fix dmic support sound/soc/codecs/msm8916-wcd-digital.c | 36 ++++++++++++++++++++++++++++++++++ sound/soc/qcom/apq8016_sbc.c | 6 ++++++ 2 files changed, 42 insertions(+) -- 2.11.0
[toc] | [next] | [standalone]
| From | srinivas.kandagatla@linaro.org |
|---|---|
| Date | 2017-07-17 16:00 +0200 |
| Subject | [PATCH 3/3] ASoC: codecs: msm8916-wcd-digital: fix dmic support |
| Message-ID | <u4eJ4-5NI-19@gated-at.bofh.it> |
| In reply to | #1689072 |
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
[toc] | [prev] | [next] | [standalone]
| From | Mark Brown <broonie@kernel.org> |
|---|---|
| Date | 2017-07-17 16:50 +0200 |
| Subject | Re: [PATCH 3/3] ASoC: codecs: msm8916-wcd-digital: fix dmic support |
| Message-ID | <u4fvs-6kS-7@gated-at.bofh.it> |
| In reply to | #1689073 |
[Multipart message — attachments visible in raw view] — view raw
On Mon, Jul 17, 2017 at 03:54:10PM +0200, srinivas.kandagatla@linaro.org wrote: > From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > > This patch fixes dmic support which was broken in this driver. In what way is DMIC support broken and how does this patch fix it?
[toc] | [prev] | [next] | [standalone]
| From | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> |
|---|---|
| Date | 2017-07-17 17:00 +0200 |
| Subject | Re: [PATCH 3/3] ASoC: codecs: msm8916-wcd-digital: fix dmic support |
| Message-ID | <u4fF8-6ob-27@gated-at.bofh.it> |
| In reply to | #1689132 |
On 17/07/17 15:45, Mark Brown wrote: > On Mon, Jul 17, 2017 at 03:54:10PM +0200, srinivas.kandagatla@linaro.org wrote: >> From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> >> >> This patch fixes dmic support which was broken in this driver. > > In what way is DMIC support broken and how does this patch fix it? > The driver was not selecting DMIC in CIC filter source path. Which is why dmic was not functional from the beginning. --srini
[toc] | [prev] | [next] | [standalone]
| From | srinivas.kandagatla@linaro.org |
|---|---|
| Date | 2017-07-17 16:00 +0200 |
| Subject | [PATCH 1/3] ASoC: codecs: msm8916-wcd-digital: add support to set_sysclk |
| Message-ID | <u4eJ5-5NI-23@gated-at.bofh.it> |
| In reply to | #1689072 |
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
This patch adds support to set_sysclk() which can let the sound
card driver to set default mclk rate. In this case MCLK for
internal audio codec is expected to be at 9.6MHz by default.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
sound/soc/codecs/msm8916-wcd-digital.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/sound/soc/codecs/msm8916-wcd-digital.c b/sound/soc/codecs/msm8916-wcd-digital.c
index f690442af8c9..126a0ee8aded 100644
--- a/sound/soc/codecs/msm8916-wcd-digital.c
+++ b/sound/soc/codecs/msm8916-wcd-digital.c
@@ -568,6 +568,16 @@ static int msm8916_wcd_digital_codec_probe(struct snd_soc_codec *codec)
return 0;
}
+static int msm8916_set_dai_sysclk(struct snd_soc_dai *dai,
+ int clk_id, unsigned int freq, int dir)
+{
+ struct msm8916_wcd_digital_priv *p = dev_get_drvdata(dai->codec->dev);
+
+ clk_set_rate(p->mclk, freq);
+
+ return 0;
+}
+
static int msm8916_wcd_digital_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai)
@@ -792,6 +802,7 @@ static struct snd_soc_dai_ops msm8916_wcd_digital_dai_ops = {
.startup = msm8916_wcd_digital_startup,
.shutdown = msm8916_wcd_digital_shutdown,
.hw_params = msm8916_wcd_digital_hw_params,
+ .set_sysclk = msm8916_set_dai_sysclk,
};
static struct snd_soc_dai_driver msm8916_wcd_digital_dai[] = {
--
2.11.0
[toc] | [prev] | [next] | [standalone]
| From | Mark Brown <broonie@kernel.org> |
|---|---|
| Date | 2017-07-17 16:50 +0200 |
| Subject | Re: [PATCH 1/3] ASoC: codecs: msm8916-wcd-digital: add support to set_sysclk |
| Message-ID | <u4fvu-6kS-37@gated-at.bofh.it> |
| In reply to | #1689074 |
[Multipart message — attachments visible in raw view] — view raw
On Mon, Jul 17, 2017 at 03:54:08PM +0200, srinivas.kandagatla@linaro.org wrote:
> +static int msm8916_set_dai_sysclk(struct snd_soc_dai *dai,
> + int clk_id, unsigned int freq, int dir)
> +{
> + struct msm8916_wcd_digital_priv *p = dev_get_drvdata(dai->codec->dev);
> +
> + clk_set_rate(p->mclk, freq);
This is ignoring the return value.
[toc] | [prev] | [next] | [standalone]
| From | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> |
|---|---|
| Date | 2017-07-17 17:00 +0200 |
| Subject | Re: [PATCH 1/3] ASoC: codecs: msm8916-wcd-digital: add support to set_sysclk |
| Message-ID | <u4fF7-6ob-11@gated-at.bofh.it> |
| In reply to | #1689142 |
On 17/07/17 15:44, Mark Brown wrote:
> On Mon, Jul 17, 2017 at 03:54:08PM +0200, srinivas.kandagatla@linaro.org wrote:
>
>> +static int msm8916_set_dai_sysclk(struct snd_soc_dai *dai,
>> + int clk_id, unsigned int freq, int dir)
>> +{
>> + struct msm8916_wcd_digital_priv *p = dev_get_drvdata(dai->codec->dev);
>> +
>> + clk_set_rate(p->mclk, freq);
>
> This is ignoring the return value.
>
Thanks, I will take care of it in next version.
--srini
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web