提交 3a6f9dce 编写于 作者: W Wonjoon Lee 提交者: Mark Brown

ASoC: rk3399_gru_sound: fix recording pop at first attempt

Pop happens when mclk applied but dmic's own boot-time
Specify dmic delay times in dt to make sure
clocks are ready earlier than dmic working
Signed-off-by: NWonjoon Lee <woojoo.lee@samsung.com>
Signed-off-by: NXing Zheng <zhengxing@rock-chips.com>
Signed-off-by: NMark Brown <broonie@kernel.org>
上级 22b93eaf
......@@ -6,10 +6,17 @@ Required properties:
connected to the codecs
- rockchip,codec: The phandle of the MAX98357A/RT5514/DA7219 codecs
Optional properties:
- dmic-wakeup-delay-ms : specify delay time (ms) for DMIC ready.
If this option is specified, which means it's required dmic need
delay for DMIC to ready so that rt5514 can avoid recording before
DMIC send valid data
Example:
sound {
compatible = "rockchip,rk3399-gru-sound";
rockchip,cpu = <&i2s0>;
rockchip,codec = <&max98357a &rt5514 &da7219>;
dmic-wakeup-delay-ms = <20>;
};
......@@ -38,6 +38,8 @@
#define SOUND_FS 256
unsigned int rt5514_dmic_delay;
static struct snd_soc_jack rockchip_sound_jack;
static const struct snd_soc_dapm_widget rockchip_dapm_widgets[] = {
......@@ -123,6 +125,9 @@ static int rockchip_sound_rt5514_hw_params(struct snd_pcm_substream *substream,
return ret;
}
/* Wait for DMIC stable */
msleep(rt5514_dmic_delay);
return 0;
}
......@@ -343,6 +348,15 @@ static int rockchip_sound_probe(struct platform_device *pdev)
return -ENODEV;
}
/* Set DMIC delay */
ret = device_property_read_u32(&pdev->dev, "dmic-delay",
&rt5514_dmic_delay);
if (ret) {
rt5514_dmic_delay = 0;
dev_dbg(&pdev->dev,
"no optional property 'dmic-delay' found, default: no delay\n");
}
rockchip_dailinks[DAILINK_RT5514_DSP].cpu_name = kstrdup_const(dev_name(dev), GFP_KERNEL);
rockchip_dailinks[DAILINK_RT5514_DSP].cpu_dai_name = kstrdup_const(dev_name(dev), GFP_KERNEL);
rockchip_dailinks[DAILINK_RT5514_DSP].platform_name = kstrdup_const(dev_name(dev), GFP_KERNEL);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册