Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83
背景:
移植完Codec RT5640之后,发现播放声音的时候底部有噪声。
用示波器测量到的左右声道波形如下:
左声道波形:
![1.jpg](//file.elecfans.com/web2/M00/7A/2A/pYYBAGNs0GqAECJzAAJWj0TbeJM648.jpg)
右声道波形:
![1.jpg](//file.elecfans.com/web2/M00/7A/2A/pYYBAGNs0ICAerzxAAHdlW8FMk0452.jpg)
左右声道波形:
![1.jpg](//file.elecfans.com/web2/M00/79/9B/poYBAGNs0JeAHD_WAANb4zOZFQc272.jpg)
原因:
一般波形上有这种有规律的毛刺基本上都是clock的问题。
经后面分析查证,发现i2s1的master clock在主rk3399.dtsi中的改动被rk3399-vop-clk-set.dtsi中的原始配置给覆盖了导致。
解决方法:
注释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
[url=home.php?mod=space&uid=1999721]@@[/url] -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>;
};
+*/
原作者:KrisFei
|