Message ID | 20241019-rk3588-hdmi0-dt-v2-2-466cd80e8ff9@collabora.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Enable HDMI0 on several RK3588 based boards | expand |
Hi, I’ve tested this series on a Radxa Rock 5B using Weston, and thus patches 1 and 2 are: Tested-by: Link Mauve <linkmauve@linkmauve.fr> On a TV which erroneously reports 1360×768 as its preferred mode, nothing gets displayed. Only setting a 1920×1080 mode will display things correctly, every other mode stays black. Also, before starting Weston, drm_info reports Status: unknown, 0×0 mm, no modes, and no EDID blob. After starting Weston all of these property get loaded properly, aside from the physical size which gets set to the obviously invalid 1600×900 mm. The first start of Weston after reboot takes a total of 7.4s, which seems very long just to (I believe) probe the screen and parse the EDID, if that’s what the driver is doing. Subsequent launches complete in about 400 ms, which is closer to my expectation. Thanks a lot for this series! On Sat, Oct 19, 2024 at 01:12:11PM +0300, Cristian Ciocaltea wrote: > Add the necessary DT changes to enable HDMI0 on Radxa ROCK 5B. > > Tested-by: FUKAUMI Naoki <naoki@radxa.com> > Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> > --- > arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 47 +++++++++++++++++++++++++ > 1 file changed, 47 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts > index d6fff5b86b87020f115ce64795aee90c002a2255..0c3baf74981b714eb2a1edbc3fbbb69cd688cfc2 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts > +++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts > @@ -4,6 +4,7 @@ > > #include <dt-bindings/gpio/gpio.h> > #include <dt-bindings/leds/common.h> > +#include <dt-bindings/soc/rockchip,vop2.h> > #include "rk3588.dtsi" > > / { > @@ -37,6 +38,17 @@ analog-sound { > pinctrl-0 = <&hp_detect>; > }; > > + hdmi0-con { > + compatible = "hdmi-connector"; > + type = "a"; > + > + port { > + hdmi0_con_in: endpoint { > + remote-endpoint = <&hdmi0_out_con>; > + }; > + }; > + }; > + > leds { > compatible = "gpio-leds"; > pinctrl-names = "default"; > @@ -192,6 +204,26 @@ &gpu { > status = "okay"; > }; > > +&hdmi0 { > + status = "okay"; > +}; > + > +&hdmi0_in { > + hdmi0_in_vp0: endpoint { > + remote-endpoint = <&vp0_out_hdmi0>; > + }; > +}; > + > +&hdmi0_out { > + hdmi0_out_con: endpoint { > + remote-endpoint = <&hdmi0_con_in>; > + }; > +}; > + > +&hdptxphy_hdmi0 { > + status = "okay"; > +}; > + > &i2c0 { > pinctrl-names = "default"; > pinctrl-0 = <&i2c0m2_xfer>; > @@ -858,3 +890,18 @@ &usb_host1_xhci { > &usb_host2_xhci { > status = "okay"; > }; > + > +&vop_mmu { > + status = "okay"; > +}; > + > +&vop { > + status = "okay"; > +}; > + > +&vp0 { > + vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { > + reg = <ROCKCHIP_VOP2_EP_HDMI0>; > + remote-endpoint = <&hdmi0_in_vp0>; > + }; > +}; > > -- > 2.47.0 > > > _______________________________________________ > Linux-rockchip mailing list > Linux-rockchip@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rockchip
On 11/6/24 10:42 PM, Link Mauve wrote: > Hi, > > I’ve tested this series on a Radxa Rock 5B using Weston, and thus > patches 1 and 2 are: > Tested-by: Link Mauve <linkmauve@linkmauve.fr> > > On a TV which erroneously reports 1360×768 as its preferred mode, > nothing gets displayed. Only setting a 1920×1080 mode will display > things correctly, every other mode stays black. I'd suggest to try the following patches from [1], they should improve the display modes support: 94b5c31f969d ("[WIP] drm/rockchip: vop2: Improve display modes handling on rk3588") c33c23053987 ("[WIP] arm64: dts: rockchip: Enable HDMI0 PHY clk provider on rk3588") 6059245635c0 ("[WIP] arm64: dts: rockchip: Make use of HDMI0 PHY PLL on rock-5b") I'm currently cleaning this up and submit upstream when ready. Thanks for testing, Cristian [1] https://gitlab.collabora.com/hardware-enablement/rockchip-3588/linux/-/commits/rk3588
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts index d6fff5b86b87020f115ce64795aee90c002a2255..0c3baf74981b714eb2a1edbc3fbbb69cd688cfc2 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts +++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts @@ -4,6 +4,7 @@ #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/leds/common.h> +#include <dt-bindings/soc/rockchip,vop2.h> #include "rk3588.dtsi" / { @@ -37,6 +38,17 @@ analog-sound { pinctrl-0 = <&hp_detect>; }; + hdmi0-con { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi0_con_in: endpoint { + remote-endpoint = <&hdmi0_out_con>; + }; + }; + }; + leds { compatible = "gpio-leds"; pinctrl-names = "default"; @@ -192,6 +204,26 @@ &gpu { status = "okay"; }; +&hdmi0 { + status = "okay"; +}; + +&hdmi0_in { + hdmi0_in_vp0: endpoint { + remote-endpoint = <&vp0_out_hdmi0>; + }; +}; + +&hdmi0_out { + hdmi0_out_con: endpoint { + remote-endpoint = <&hdmi0_con_in>; + }; +}; + +&hdptxphy_hdmi0 { + status = "okay"; +}; + &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0m2_xfer>; @@ -858,3 +890,18 @@ &usb_host1_xhci { &usb_host2_xhci { status = "okay"; }; + +&vop_mmu { + status = "okay"; +}; + +&vop { + status = "okay"; +}; + +&vp0 { + vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { + reg = <ROCKCHIP_VOP2_EP_HDMI0>; + remote-endpoint = <&hdmi0_in_vp0>; + }; +};