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>;
};
+*/