I changed the file msm8916-wcd-digital.c as below:
diff --git a/sound/soc/codecs/msm8916-wcd-digital.c b/sound/soc/codecs/msm8916-wcd-digital.c
snd_soc_update_bits(codec, LPASS_CDC_CLK_DMIC_B1_CTL,
DMIC_B1_CTL_DMIC0_CLK_SEL_MASK,
-
DMIC_B1_CTL_DMIC0_CLK_SEL_DIV16);
switch (dmic) {
case 1:
snd_soc_update_bits(codec, LPASS_CDC_TX1_DMIC_CTL,
TXN_DMIC_CTL_CLK_SEL_MASK,
- TXN_DMIC_CTL_CLK_SEL_DIV3);
- TXN_DMIC_CTL_CLK_SEL_DIV16);
break;
case 2:
snd_soc_update_bits(codec, LPASS_CDC_TX2_DMIC_CTL,
TXN_DMIC_CTL_CLK_SEL_MASK,
- TXN_DMIC_CTL_CLK_SEL_DIV3);
- TXN_DMIC_CTL_CLK_SEL_DIV16);
I got DMIC_CLK(1.19MHZ) and MIC_BIAS(2.7V) after below commands performed:
$amixer -c 0 cset iface=MIXER,name=‘DEC1 MUX’ ‘DMIC1’
$arecord -D plughw:0,2 -r 48000 -f S16_LE /tmp/f-48000.wav
But there’s no voice when we play f-48000.wav that we recorded.