]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: rockchip: Add HDMI PHY PLL clock source to VOP2 on rk3576
authorCristian Ciocaltea <cristian.ciocaltea@collabora.com>
Wed, 11 Jun 2025 21:47:49 +0000 (00:47 +0300)
committerHeiko Stuebner <heiko@sntech.de>
Mon, 30 Jun 2025 09:16:42 +0000 (11:16 +0200)
Since commit c871a311edf0 ("phy: rockchip: samsung-hdptx: Setup TMDS
char rate via phy_configure_opts_hdmi"), the workaround of passing the
rate from DW HDMI QP bridge driver via phy_set_bus_width() became
partially broken, as it cannot reliably handle mode switches anymore.

Attempting to fix this up at PHY level would not only introduce
additional hacks, but it would also fail to adequately resolve the
display issues that are a consequence of the system CRU limitations.

Instead, proceed with the solution already implemented for RK3588: make
use of the HDMI PHY PLL as a better suited DCLK source for VOP2. This
will not only address the aforementioned problem, but it should also
facilitate the proper operation of display modes up to 4K@60Hz.

It's worth noting that anything above 4K@30Hz still requires high TMDS
clock ratio and scrambling support, which hasn't been mainlined yet.

Fixes: d74b842cab08 ("arm64: dts: rockchip: Add vop for rk3576")
Cc: stable@vger.kernel.org
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Tested-By: Detlev Casanova <detlev.casanova@collabora.com>
Tested-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Link: https://lore.kernel.org/r/20250612-rk3576-hdmitx-fix-v1-3-4b11007d8675@collabora.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm64/boot/dts/rockchip/rk3576.dtsi

index 9fc18384f6096cc3aaf90e6cb94a084750a79353..1fec0ecea91db1441dc7f7c9aa987cfdbbcb1c46 100644 (file)
                                 <&cru HCLK_VOP>,
                                 <&cru DCLK_VP0>,
                                 <&cru DCLK_VP1>,
-                                <&cru DCLK_VP2>;
+                                <&cru DCLK_VP2>,
+                                <&hdptxphy>;
                        clock-names = "aclk",
                                      "hclk",
                                      "dclk_vp0",
                                      "dclk_vp1",
-                                     "dclk_vp2";
+                                     "dclk_vp2",
+                                     "pll_hdmiphy0";
                        iommus = <&vop_mmu>;
                        power-domains = <&power RK3576_PD_VOP>;
                        rockchip,grf = <&sys_grf>;