Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83
背景: 移植完Codec RT5640之后,发现播放声音的时候底部有噪声。 用示波器测量到的左右声道波形如下: 左声道波形:
右声道波形:
左右声道波形:
原因: 一般波形上有这种有规律的毛刺基本上都是clock的问题。
经后面分析查证,发现i2s1的master clock在主rk3399.dtsi中的改动被 rk3399-vop-clk-set.dtsi中的原始配置给覆盖了导致。 关于RT5640的移植配置见文章: [RK3399][Android7.1] 移植笔记 — 音频Codec RT5640添加
解决方法: 注释rk3399-vop-clk-set.dtsi中的i2s1节点配置。
kris@eco:~/rk3399/kernel$ g df 984b7775a67e26667e76768f32d49752c1d20316 e2251e9c8208761fdacbcfbe7e4943a71d4338af diff --git a/arch/arm64/boot/dts/rockchip/rk3399-vop-clk-set.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-vop-clk-set.dtsi index 14ff440..8a98bbc 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-vop-clk-set.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399-vop-clk-set.dtsi @@ -89,10 +89,12 @@ assigned-clock-parents = <&cru PLL_GPLL>; }; +/* Kris,180906, Fix playback noise issue. &i2s1 { assigned-clocks = <&cru SCLK_I2S1_DIV>; assigned-clock-parents = <&cru PLL_GPLL>; }; +*/
