[PATCH v2 4/4] arm64: dts: rockchip: Enable HDMI1 on rock-5b

Cristian Ciocaltea posted 4 patches 1 year ago
[PATCH v2 4/4] arm64: dts: rockchip: Enable HDMI1 on rock-5b
Posted by Cristian Ciocaltea 1 year ago
Add the necessary DT changes to enable the second HDMI output port on
Radxa ROCK 5B.

While at it, switch the position of &vop_mmu and @vop to maintain the
alphabetical order.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
---
 arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 44 +++++++++++++++++++++++--
 1 file changed, 42 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
index c44d001da16978bbbb8a93d652893a786e9ea79b..9c3793d394a6f226bbbd3a88381974ea01ca7069 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
@@ -49,6 +49,17 @@ hdmi0_con_in: endpoint {
 		};
 	};
 
+	hdmi1-con {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi1_con_in: endpoint {
+				remote-endpoint = <&hdmi1_out_con>;
+			};
+		};
+	};
+
 	leds {
 		compatible = "gpio-leds";
 		pinctrl-names = "default";
@@ -220,10 +231,32 @@ hdmi0_out_con: endpoint {
 	};
 };
 
+&hdmi1 {
+	pinctrl-0 = <&hdmim0_tx1_cec &hdmim0_tx1_hpd
+		     &hdmim1_tx1_scl &hdmim1_tx1_sda>;
+	status = "okay";
+};
+
+&hdmi1_in {
+	hdmi1_in_vp1: endpoint {
+		remote-endpoint = <&vp1_out_hdmi1>;
+	};
+};
+
+&hdmi1_out {
+	hdmi1_out_con: endpoint {
+		remote-endpoint = <&hdmi1_con_in>;
+	};
+};
+
 &hdptxphy_hdmi0 {
 	status = "okay";
 };
 
+&hdptxphy1 {
+	status = "okay";
+};
+
 &i2c0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&i2c0m2_xfer>;
@@ -891,11 +924,11 @@ &usb_host2_xhci {
 	status = "okay";
 };
 
-&vop_mmu {
+&vop {
 	status = "okay";
 };
 
-&vop {
+&vop_mmu {
 	status = "okay";
 };
 
@@ -905,3 +938,10 @@ vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
 		remote-endpoint = <&hdmi0_in_vp0>;
 	};
 };
+
+&vp1 {
+	vp1_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 {
+		reg = <ROCKCHIP_VOP2_EP_HDMI1>;
+		remote-endpoint = <&hdmi1_in_vp1>;
+	};
+};

-- 
2.47.0
Re: [PATCH v2 4/4] arm64: dts: rockchip: Enable HDMI1 on rock-5b
Posted by Mark Brown 8 months, 2 weeks ago
On Wed, Dec 11, 2024 at 01:06:17AM +0200, Cristian Ciocaltea wrote:
> Add the necessary DT changes to enable the second HDMI output port on
> Radxa ROCK 5B.
> 
> While at it, switch the position of &vop_mmu and @vop to maintain the
> alphabetical order.

We're seeing failures in the Arm lab the IGT tests on this board in
Linus' tree which bisect to 77cea7ca1368 which is this patch.
core_getversion fails:

<14>[   21.933549] [IGT] core_getversion: executing
IGT-Version: 2.0-g8b20280 (aarch64) (Linux: 6.14.0 aarch64)
Using IGT_SRANDOM=1741272980 for randomisation
(core_getversion:284) CRITICAL: Test assertion failure function __igt_unique____real_main84, file ../tests/core_getversion.c:91:
(core_getversion:284) CRITICAL: Failed assertion: fd >= 0
(core_getversion:284) CRITICAL: Last errno: 2, No such file or directory
(core_getversion:284) CRITICAL: file descriptor fd failed
Stack trace:
  #0 ../lib/igt_core.c:2055 __igt_fail_assert()
  #1 [<unknown>+0xe31a129c]
  #2 [<unknown>+0xe31a0dac]
  #3 [__libc_init_first+0x80]
  #4 [__libc_start_main+0x98]
  #5 [<unknown>+0xe31a0df0]
Test core_getversion failed.
**** DEBUG ****
(core_getversion:284) igt_core-INFO: IGT-Version: 2.0-g8b20280 (aarch64) (Linux: 6.14.0 aarch64)
(core_getversion:284) igt_core-INFO: Using IGT_SRANDOM=1741272980 for randomisation
(core_getversion:284) drmtest-DEBUG: Force option used: Using driver rockchip
(core_getversion:284) drmtest-DEBUG: Condition stat(path, &new) != 0 occurred in function _is_already_opened, file ../lib/drmtest.c:407
(core_getversion:284) drmtest-DEBUG: Condition stat(path, &new) != 0 occurred in function _is_already_opened, file ../lib/drmtest.c:407
(core_getversion:284) drmtest-DEBUG: Condition stat(path, &new) != 0 occurred in function _is_already_opened, file ../lib/drmtest.c:407
(core_getversion:284) drmtest-DEBUG: Condition stat(path, &new) != 0 occurred in function _is_already_opened, file ../lib/drmtest.c:407
(core_getversion:284) drmtest-DEBUG: Condition stat(path, &new) != 0 occurred in function _is_already_opened, file ../lib/drmtest.c:407
(core_getversion:284) drmtest-DEBUG: Condition stat(path, &new) != 0 occurred in function _is_already_opened, file ../lib/drmtest.c:407
(core_getversion:284) drmtest-DEBUG: Condition stat(path, &new) != 0 occurred in function _is_already_opened, file ../lib/drmtest.c:407

(core_getversion:284) drmtest-DEBUG: Condition stat(path, &new) != 0 occurred in function _is_already_opened, file ../lib/drmtest.c:407
(core_getversion:284) CRITICAL: Test assertion failure function __igt_unique____real_main84, file ../tests/core_getversion.c:91:
(core_getversion:284) CRITICAL: Failed assertion: fd >= 0

(core_getversion:284) CRITICAL: Last errno: 2, No such file or directory
(core_getversion:284) CRITICAL: file descriptor fd failed
(core_getversion:284) igt_core-INFO: Stack trace:
(core_getversion:284) igt_core-INFO:   #0 ../lib/igt_core.c:2055 __igt_fail_assert()
(core_getversion:284) igt_core-INFO:   #1 [<unknown>+0xe31a129c]
(core_getversion:284) igt_core-INFO:   #2 [<unknown>+0xe31a0dac]
(core_getversion:284) igt_core-INFO:   #3 [__libc_init_first+0x80]
(core_getversion:284) igt_core-INFO:   #4 [__libc_start_main+0x98]
(core_getversion:284) igt_core-INFO:   #5 [<unknown>+0xe31a0df0]
****  END  ****
[1mSubtest basic: FAIL (0.000s)[0m

and all the other tests refuse to run.  Previously the test passed:

<14>[   22.491231] [IGT] core_getversion: executing
IGT-Version: 2.0-g8b20280 (aarch64) (Linux: 6.14.0 aarch64)
<14>[   22.492030] [IGT] core_getversion: starting subtest basic
Using IGT_SRANDOM=1741272980 for randomisation
Opened device: /<14>[   22.492835] [IGT] core_getversion: finished subtest basic, SUCCESS
dev/dri/card0
Starting subtest: basic
0: rockchip v1.0 0 RockC<14>[   22.494233] [IGT] core_getversion: exiting, ret=0
hip Soc DRM
[1mSubtest basic: SUCCESS (0.000s)[0m

The board is running fine in -next so hopefully there's a fix already
there which will make it's way to Linus' tree during the merge window.
We're also seeing something broken with the HDMI audio devices, but I
didn't look into that.

Bisection log:

git bisect start
# status: waiting for both good and bad commits
# good: [1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95] Merge tag 'net-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
git bisect good 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95
# status: waiting for bad commit, 1 good commit known
# bad: [01d5b167dc230cf3b6eb9dd7205f6a705026d1ce] Merge tag 'modules-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/modules/linux
git bisect bad 01d5b167dc230cf3b6eb9dd7205f6a705026d1ce
# good: [cf05922d63e2ae6a9b1b52ff5236a44c3b29f78c] Merge tag 'drm-intel-gt-next-2025-03-12' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next
git bisect good cf05922d63e2ae6a9b1b52ff5236a44c3b29f78c
# bad: [72885116069abdd05c245707c3989fc605632970] Merge tag 'landlock-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux
git bisect bad 72885116069abdd05c245707c3989fc605632970
# bad: [b2e7b0ffa56185d04871c6fe317b36d30ce2861d] Merge tag 'erofs-for-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs
git bisect bad b2e7b0ffa56185d04871c6fe317b36d30ce2861d
# bad: [c9869f9073bacfa9b6030fd7670f737793277a85] Merge tag 'imx-dt64-6.15' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
git bisect bad c9869f9073bacfa9b6030fd7670f737793277a85
# bad: [d1221aeb5a44f1bbfe16a6efd8bc8b0bc3f565a6] Merge tag 'v6.15-rockchip-dts64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
git bisect bad d1221aeb5a44f1bbfe16a6efd8bc8b0bc3f565a6
# good: [c4991aabc1f90359970c17db38342adf2678a181] Merge tag 'mtk-dts64-for-v6.15' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt
git bisect good c4991aabc1f90359970c17db38342adf2678a181
# bad: [b2e668a60ed866ba960acb5310d1fb6bf81d154f] arm64: dts: rockchip: Add HDMI1 PHY PLL clock source to VOP2 on RK3588
git bisect bad b2e668a60ed866ba960acb5310d1fb6bf81d154f
# bad: [91abdc6b36e12a2c3a477bde90e9f1dd8c2413bf] arm64: dts: rockchip: add overlay test for Edgeble NCM6A/NCM6B
git bisect bad 91abdc6b36e12a2c3a477bde90e9f1dd8c2413bf
# good: [f62f325a586682b7fff643c9fd8edc348bff6abc] dt-bindings: vendor-prefixes: Add prefix for Ariaboard
git bisect good f62f325a586682b7fff643c9fd8edc348bff6abc
# good: [bed6964e779b5853de042da14320edf9f79506fe] arm64: dts: rockchip: Add HDMI1 node on RK3588
git bisect good bed6964e779b5853de042da14320edf9f79506fe
# bad: [b3dc2a9315c4046b330a784c0527c671fd236414] arm64: dts: rockchip: remove rk3588 optee node
git bisect bad b3dc2a9315c4046b330a784c0527c671fd236414
# bad: [4a2fdf91e1239d9659d0317f3e8e37681ac555a4] arm64: dts: rockchip: Enable HDMI1 out for Edgeble-6TOPS Modules
git bisect bad 4a2fdf91e1239d9659d0317f3e8e37681ac555a4
# bad: [77cea7ca13680e14119a3b9635c7ef16cd7ee44e] arm64: dts: rockchip: Enable HDMI1 on rock-5b
git bisect bad 77cea7ca13680e14119a3b9635c7ef16cd7ee44e
# first bad commit: [77cea7ca13680e14119a3b9635c7ef16cd7ee44e] arm64: dts: rockchip: Enable HDMI1 on rock-5b
Re: [PATCH v2 4/4] arm64: dts: rockchip: Enable HDMI1 on rock-5b
Posted by Sebastian Reichel 8 months, 2 weeks ago
Hi,

On Mon, Mar 31, 2025 at 08:01:34PM +0100, Mark Brown wrote:
> On Wed, Dec 11, 2024 at 01:06:17AM +0200, Cristian Ciocaltea wrote:
> > Add the necessary DT changes to enable the second HDMI output port on
> > Radxa ROCK 5B.
> > 
> > While at it, switch the position of &vop_mmu and @vop to maintain the
> > alphabetical order.
> 
> We're seeing failures in the Arm lab the IGT tests on this board in
> Linus' tree which bisect to 77cea7ca1368 which is this patch.
> core_getversion fails:
>
>[...]
>
> The board is running fine in -next so hopefully there's a fix already
> there which will make it's way to Linus' tree during the merge window.
> We're also seeing something broken with the HDMI audio devices, but I
> didn't look into that.

I guess the root cause for the problem is, that the pull request for
the PHY subsystem [0] has not yet been merged. It contains [1]
("phy: phy-rockchip-samsung-hdptx: Don't use dt aliases to determine phy-id"),
a fix for properly handling the second RK3588 HDMI PHY instance.

[0] https://lore.kernel.org/all/Z+pFou7KOQZJ1iy4@vaman/
[1] https://web.git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git/commit/?h=next&id=f08d1c08563846f9be79a4859e912c8795d690fd

Greetings,

-- Sebastian