5K@60 HDMI output

Hello,

I’m new to DietPi. I’ve been running Joshua’s Riek great Ubuntu system on my Radxa Rock 5B for years. Now I’m looking around for a good alternative. So I’m testing DietPi right now. I like its philosophy, many supported platforms and active community.

Everything looks good except one thing. I’m not able to get 5K (5120x2160) HDMI output at 60 Hz refresh rate in desktop environment running the current Radxa 5B trixie image. I can get 5K, but at 30 Hz only. I’m pretty sure that 5K@60 is possible as it worked with official Radxa Debian 12 image with 6.1.43 kernel.

This is what xrandr tells in Radxa’s Debian 12 with kernel 6.1.43:

rock@rock-5b:~/Downloads$ xrandr
Screen 0: minimum 320 x 200, current 2560 x 1080, maximum 16384 x 16384
HDMI-1 connected primary 2560x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
2560x1080 60.00*+
5120x2160 120.00 119.88 60.00 59.94 30.00 29.97
4096x2160 60.00 59.94
3840x2160 60.00 50.00 59.94 60.00 30.00 25.00 24.00 29.97 23.98
2560x1440 59.95
2048x1152 60.00
1920x1200 59.95
1920x1080 60.00 60.00 50.00 59.94
1600x1200 60.00
1680x1050 59.88
1280x1024 75.02 60.02
1280x800 59.91
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00 50.00
720x480 60.00 60.00 59.94 59.94
640x480 75.00 60.00 59.94 59.94
720x400 70.08
HDMI-2 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)

And that is what I get in DietPi:

dietpi@DietPi:~$ xrandr
Screen 0: minimum 320 x 200, current 2560 x 1080, maximum 16384 x 16384
HDMI-1 connected primary 2560x1080+0+0 (normal left inverted right x axis y axis) 929mm x 392mm
2560x1080 60.00*+
5120x2160 30.00 29.97 30.00
4096x2160 60.00 59.94
3840x2160 60.00 50.00 59.94 60.00 30.00 25.00 24.00 29.97 23.98
2560x1440 59.95
2048x1152 60.00
1920x1200 59.95
1920x1080 60.00 60.00 50.00 59.94
1600x1200 60.00
1680x1050 59.88
1280x1024 75.02 60.02
1280x800 59.91
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00
720x480 60.00 59.94
640x480 75.00 60.00 59.94
720x400 70.08
HDMI-2 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)

I already tried to add and use 5120x2160_60.0 mode made by cvt, but it didn’t work.

Could someone more experienced than me direct me to right direction to achieve this?

Can you check

uname -r

and

dmesg | grep -i hdmi

Hi,

thank you for helping. Looking at the dmesg output you advised me, I realized it switches to 5120x2160p60 during booting and later to 2560x1080p60 which is what I get after logging to desktop, see:

[    9.619304] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 5120x2160p60, type: 11(if:HDMI0, flag:0x0) for vp0 dclk: 703930000

[    9.815362] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 2560x1080p60, type: 0(if:HDMI0, flag:0x0) for vp0 dclk: 181320000

This led me to idea, that to get 5K@60 must be possible. So I tried to add new mode and to use it again and now I was finally successful. After some trials I found that even the 75 Hz refresh rate is possible, which is really great. Finally I used these steps:

cvt 5120 2160 75

xrandr --newmode “5120x2160_75.00”  1204.50  5120 5552 6120 7120  2160 2163 2173 2257 -hsync +vsync

xrandr --addmode HDMI-1 5120x2160_75.00

xrandr --output HDMI-1 --mode 5120x2160_75.00

The reason why I was’t successful switching the mode earlier was because I always tried to switch to higher refresh rate 5K mode while running the always working basic 5K@30Hz mode. It always said that this mode wasn’t available even though it was listed by xrandr. But when I switch to any otter (lower resolution) mode e.g. 4096x2160 first, then the following switch to 5K@60 or 5K@75 worked. Strange…

The only annoying issue is that display randomly turns off and on for 3 seconds. But this is not a 75 Hz, nor DietPi issue as it appears at 60 Hz both in DietPi and official Radxa’s Debian 12 too. Only 5K@30Hz is not affected by this. But 30 Hz refresh rate is not usable.

Thank you for kicking me to the right direction!:wink:

BTW, below are the outputs you asked for in case you are interested.

dietpi@DietPi:~$ uname -r
6.1.115-vendor-rk35xx

dietpi@DietPi:~$ dmesg | grep -i hdmi
[    8.565964] platform fdd90000.vop: Fixed dependency cycle(s) with /hdmi@fde80000
[    8.565997] platform fde80000.hdmi: Fixed dependency cycle(s) with /vop@fdd90000
[    8.579705] platform fdd90000.vop: Fixed dependency cycle(s) with /hdmi@fdea0000
[    8.579741] platform fdea0000.hdmi: Fixed dependency cycle(s) with /vop@fdd90000
[    9.479351] phy phy-fed60000.hdmiphy.9: Looking up phy-supply from device tree
[    9.479357] phy phy-fed60000.hdmiphy.9: Looking up phy-supply property in node /hdmiphy@fed60000 failed
[    9.479997] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy init success
[    9.480179] phy phy-fed70000.hdmiphy.10: Looking up phy-supply from device tree
[    9.480184] phy phy-fed70000.hdmiphy.10: Looking up phy-supply property in node /hdmiphy@fed70000 failed
[    9.480816] rockchip-hdptx-phy-hdmi fed70000.hdmiphy: hdptx phy init success
[    9.533709] dwhdmi-rockchip fde80000.hdmi: Looking up avdd-0v9-supply from device tree
[    9.533718] dwhdmi-rockchip fde80000.hdmi: Looking up avdd-0v9-supply property in node /hdmi@fde80000 failed
[    9.533728] dwhdmi-rockchip fde80000.hdmi: Looking up avdd-1v8-supply from device tree
[    9.533735] dwhdmi-rockchip fde80000.hdmi: Looking up avdd-1v8-supply property in node /hdmi@fde80000 failed
[    9.534213] dwhdmi-rockchip fde80000.hdmi: registered ddc I2C bus driver
[    9.534813] rockchip-drm display-subsystem: bound fde80000.hdmi (ops 0xffff800009426338)
[    9.534919] dwhdmi-rockchip fdea0000.hdmi: Looking up avdd-0v9-supply from device tree
[    9.534927] dwhdmi-rockchip fdea0000.hdmi: Looking up avdd-0v9-supply property in node /hdmi@fdea0000 failed
[    9.534938] dwhdmi-rockchip fdea0000.hdmi: Looking up avdd-1v8-supply from device tree
[    9.534944] dwhdmi-rockchip fdea0000.hdmi: Looking up avdd-1v8-supply property in node /hdmi@fdea0000 failed
[    9.535345] dwhdmi-rockchip fdea0000.hdmi: registered ddc I2C bus driver
[    9.535835] rockchip-drm display-subsystem: bound fdea0000.hdmi (ops 0xffff800009426338)
[    9.619304] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 5120x2160p60, type: 11(if:HDMI0, flag:0x0) for vp0 dclk: 703930000
[    9.619543] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42dc6c00 rate:742500
[    9.619799] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[    9.619834] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_lcpll_cmn_config rate:48000000
[    9.620084] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[    9.620088] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 703930000
[    9.620141] dwhdmi-rockchip fde80000.hdmi: don’t use dsc mode
[    9.620148] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x42dc6c00,bit_rate:48000000
[    9.620349] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked!
[    9.685909] dwhdmi-rockchip fde80000.hdmi: goto lts4
[    9.686257] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42625a00 rate:5050327
[    9.686513] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[    9.686547] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_lcpll_cmn_config rate:40000000
[    9.686798] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[    9.686801] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x42625a00,bit_rate:40000000
[    9.687008] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked!
[    9.687629] dwhdmi-rockchip fde80000.hdmi: from lts4 go to lts3
[    9.694207] dwhdmi-rockchip fde80000.hdmi: Training finish, go to ltsp
[    9.696671] dwhdmi-rockchip fde80000.hdmi: flt success
[    9.719007] dwhdmi-rockchip fde80000.hdmi: use tmds mode
[    9.775677] dwhdmi-rockchip fde80000.hdmi: hdmi dclk is disabled, stop poll flt_update
[    9.815362] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 2560x1080p60, type: 0(if:HDMI0, flag:0x0) for vp0 dclk: 181320000
[    9.815525] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_lcpll_cmn_config rate:40000000
[    9.815778] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[    9.815818] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:1baad0 rate:1813200
[    9.816073] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[    9.816110] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 181320000
[    9.819969] dwhdmi-rockchip fde80000.hdmi: don’t use dsc mode
[    9.819973] dwhdmi-rockchip fde80000.hdmi: dw hdmi qp use tmds mode
[    9.819979] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x1baad0,bit_rate:1813200
[    9.820173] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked!
[    9.909781] dw-hdmi-qp-hdcp dw-hdmi-qp-hdcp.2.auto: dw_hdcp_qp_hdcp_probe success
[    9.909896] dw-hdmi-qp-hdcp dw-hdmi-qp-hdcp.5.auto: dw_hdcp_qp_hdcp_probe success
[    9.910464] rc rc0: dw_hdmi_qp as /devices/platform/fde80000.hdmi/rc/rc0
[    9.910582] input: dw_hdmi_qp as /devices/platform/fde80000.hdmi/rc/rc0/input0
[    9.910984] rc rc1: dw_hdmi_qp as /devices/platform/fdea0000.hdmi/rc/rc1
[    9.911096] input: dw_hdmi_qp as /devices/platform/fdea0000.hdmi/rc/rc1/input1
[   10.398494] rk_hdmirx fdee0000.hdmirx-controller: No reserved memory for HDMIRX, use default CMA
[   10.401157] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_get_phy_cpuid_func: mpidr: 0x0000000500, phy_cpuid:0x5
[   10.403794] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_probe: cpu_aff:0x500, Bound_cpu:5, wdt_cfg_bound_cpu:2, phy_cpuid:5
[   10.407677] rk_hdmirx fdee0000.hdmirx-controller: rk_hdmirx_hdcp_register success
[   10.410480] rk_hdmirx fdee0000.hdmirx-controller: fdee0000.hdmirx-controller driver probe ok!
[   10.715963] input: rockchip-hdmi0 rockchip-hdmi0 as /devices/platform/hdmi0-sound/sound/card0/input2
[   10.718476] input: rockchip-hdmi1 rockchip-hdmi1 as /devices/platform/hdmi1-sound/sound/card1/input3
[   10.722085] input: rockchip-hdmi2 rockchip-hdmi2 as /devices/platform/dp0-sound/sound/card2/input4
[   10.737321] input: rockchip,hdmiin rockchip,hdmiin as /devices/platform/hdmiin-sound/sound/card3/input5
[   11.569992] rockchip-dmc dmc: hdmirx_rate = 2112000000
[   11.848646]   #0: rockchip-hdmi0
[   11.850402]   #1: rockchip-hdmi1
[   11.852134]   #2: rockchip-hdmi2
[   11.853859]   #3: rockchip,hdmiin
[   12.605465] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_cancel_cpu_limit_freq freq qos nod add
[  105.760079] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 5120x2160p75, type: 11(if:HDMI0, flag:0x0) for vp0 dclk: 1204500000
[  105.760219] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42dc6c00 rate:1813200
[  105.760464] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[  105.774099] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42dc6c00 rate:1813200
[  105.774342] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[  105.774377] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_lcpll_cmn_config rate:48000000
[  105.774616] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[  105.774621] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 602250000
[  105.774654] dwhdmi-rockchip fde80000.hdmi: don’t use dsc mode
[  105.774659] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x42dc6c00,bit_rate:48000000
[  105.774851] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked!
[  105.839544] dwhdmi-rockchip fde80000.hdmi: goto lts4
[  105.839886] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42625a00 rate:5050327
[  105.840129] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[  105.840165] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_lcpll_cmn_config rate:40000000
[  105.840404] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[  105.840409] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x42625a00,bit_rate:40000000
[  105.840602] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked!
[  105.841214] dwhdmi-rockchip fde80000.hdmi: from lts4 go to lts3
[  105.846819] dwhdmi-rockchip fde80000.hdmi: Training finish, go to ltsp
[  105.849296] dwhdmi-rockchip fde80000.hdmi: flt success

What is interesting about it is that Radxa’s kernel should be very similar to ours (Armbian’s Rockchip Linux sources), it is based on the one by Radxa, and updates their end are usually merged our end earlier or later:

But their image seems to be very old, based on a much older version. They are also on Linux 6.1.115 in the meantime.

The relevant driver should be below drivers/gpu/drm/rockchip, AFAIK drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c. That one is however identical between both sources, aside of a single irrelevant command about how a debug message is printed:

	if (!max_frl_rate || (tmdsclk < HDMI20_MAX_RATE && mode.clock < HDMI20_MAX_RATE)) {
-		dev_info_once(hdmi->dev, "use tmds mode\n");
+		dev_dbg(hdmi->dev, "use tmds mode\n");
		hdmi->link_cfg.frl_mode = false;
		return;
	}

Rolling back to the last commit with Linux 6.1.43: kernel/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c at 52a953d0934b17a88f403b4135eb3cdf83d19f91 · radxa/kernel · GitHub
Hmm, actually the high pixel clock rates have been added afterwards :thinking:. Previous max 148,500,000 Hz, new max 600,000,000 Hz … or 297,000,000 vs 594,000,000 for the PHY, noch sure which one to use for calculation.

5120 x 2160 x 60 = 663,552,000 seems to crash the new limit, and the old limit anyway. So from that I’d say makes sense that 5k@30Hz or 4k@60Hz is the max. And the ~half old max would be a good explanation why you end up at 2560x1080@60Hz with the Radxa kernel, as this would not even allow 4k@60Hz.

I am not sure where xrandr is getting the information from, probably the old kernel driver communicated things falsely. For the new kernel the limits seem to match the values in the driver.

So you seem to stretch beyond intended limits by adding a custom mode, which might explain the random turn offs you mentioned. Maybe something is overloaded, or some resistor overheating or something like that.

Thank you for your analysis. I just provide some overview of my experience.

Radxa official current Debian 12 image

Older 6.1.43 kernel:

  • 5K@30 available out of the box (real monitor frequency 30 Hz - checked in monitor UI), runs steadily, but not much usable though
  • 5K@60 available out of the box (real monitor freq. 55 Hz), random turn offs
  • 5K@75 not available out of the box and cannot be forced with xrandr

Actual 6.1.84 kernel (upgraded with system upgrade):

  • 5K@30 available out of the box (real monitor freq. 30 Hz), runs steadily, but not much usable though
  • 5K@60 & 5K@75 not available and cannot be forced with xrandr

DietPi current Debian 13 image (kernel 6.1.115)

  • 5K@30 available out of the box (real monitor freq. 30 Hz), runs steadily, but not much usable though
  • 5K@60 & 5K@75 (real monitor freqs. 50 (note 5 Hz lower than in Raxda image) and 74 respectively), random turn offs
    • note: turn offs do not happen more often with 75 Hz over 60 Hz, their occurrence is more or less the same, always truly random, sometimes couple of times in one minute, sometimes once in couple of minutes

I hope I’m not over board spec as according to the official source the HW supports up to 8K60, see Product Introduction. The pixel clock rates math looks as follows:

  • 7680x4320@60 = 1990656000
  • 5120x2160@30 = 331776000
  • 5120x*2160@*60 = 663552000
  • 5120x2160@75 = 829440000

In DietPi I tried higher frequencies 90, 100 and 120 too, but none of them worked. DELL U4025QW monitor used is rated up to 5K@120 witch gives 1327104000 pixel clock rate, still way under the one of 7680x4320@60.

I use the Ultra High Speed certified HDMI cable provided with the monitor and tested by running 5120x2160@60 steadily at notebook, so cable is not the source of turn offs.

What about this:

So you max bandwith is 704mhz, DSC is not available with your kernel, so this is the max you can get. But for 5K@60Hz you need 796 MHz?

But DSC should be available, but in the message they say also

It’s worth mentioning the HDMI output support is currently limited to
RGB output up to 4K@60Hz, without audio, CEC or any of the HDMI 2.1
specific features

But this is over a year old. I couldn’t find any newer info

So maybe with the 6.1 kernel DSC is not available yet?

I also foudn this, where they talk about upstream support starting with kernel 6.8?
https://www.collabora.com/news-and-blog/news-and-events/rockchip-rk3588-upstream-support-progress-future-plans.html?utm_source=chatgpt.com

Oh I was somehow looking at the RK356x, mixing with the other topic, while you use ROCK 5B=RK3588. However, same driver. Interesting is that the Linux 6.1.43 version of the driver does not define values for RK3588 at all. Not sure what is used as fallback in that case. In any case, the highest values defined remain below 5k@60Hz, whatever Radxa states or the hardware theoretically supports. Maybe it is a software-side limitation then related to how the signal is operated.

Mainline Linux btw split off the driver for RK3576 and RK3588, but I cannot find the pixel clock rates: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/gpu/drm/rockchip/dw_hdmi_qp-rockchip.c

Oh good find, so maybe 8k@60 refers to DSC, and maybe the HDMI screen does not support it? Also, the latest Rockchip kernel is the only one which mentions support in this driver code, als explicitly with comment values that match 8k UHD:

The older Radxa driver does not contain this yet, and mainline Linux does neither. Though possible that it was moved from/to another place.

703,930,000 however would be enought for 5k@60 = 663,552,000 Hz, or is there some margin I am missing?

It btw switches two times:

[    9.620088] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 703930000
[    9.620141] dwhdmi-rockchip fde80000.hdmi: don’t use dsc mode
...
[    9.816110] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 181320000
[    9.819969] dwhdmi-rockchip fde80000.hdmi: don’t use dsc mode
[    9.819973] dwhdmi-rockchip fde80000.hdmi: dw hdmi qp use tmds mode
...
[  105.774621] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 602250000
[  105.774654] dwhdmi-rockchip fde80000.hdmi: don’t use dsc mode

@sunarowicz
How do the related parts of the log look with the old Radxa kernel?

You may want to test with mainline Linux:

apt install linux-{image,dtb}-edge-rockchip64

It even has an NPU driver in the meantime. Just VPU and stuff is not yet as complete in mainline Linux, like RKMPP vs the V4L2-based driver and userland components used for mainline Linux.

I think he wants 5K:

Ah sorry typo my end:

5120 x 2160 x 60 = 663,552,000

Here is the log of the old Radxa kernel, please note that the last switch to 5120x2160p60 is the one I did manually in desktop after system has booted:

rock@rock-5b:~$ uname -a 
Linux rock-5b 6.1.43-15-rk2312 #3176a44da SMP Wed Jul 31 04:27:40 UTC 2024 aarch64 GNU/Linux

rock@rock-5b:~$ sudo dmesg | grep -i -e hdmi -e "Update mode to" 
[    4.293714] platform fdd90000.vop: Fixed dependency cycle(s) with /hdmi@fde80000 
[    4.308586] platform fdd90000.vop: Fixed dependency cycle(s) with /hdmi@fdea0000 
[    5.598812] phy phy-fed60000.hdmiphy.9: Looking up phy-supply from device tree 
[    5.598817] phy phy-fed60000.hdmiphy.9: Looking up phy-supply property in node /hdmiphy@fed60000 failed 
[    5.599476] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy init success 
[    5.599665] phy phy-fed70000.hdmiphy.10: Looking up phy-supply from device tree 
[    5.599671] phy phy-fed70000.hdmiphy.10: Looking up phy-supply property in node /hdmiphy@fed70000 failed 
[    5.600288] rockchip-hdptx-phy-hdmi fed70000.hdmiphy: hdptx phy init success 
[    5.603176] mpp_service mpp-srv: 3176a44da author: Ken Wang 2024-07-29 drm: bridge: synopsys: set hdmi->last
_connector_result in dw_hdmi_connector_detect() 
[    5.651785] dwhdmi-rockchip fde80000.hdmi: Looking up avdd-0v9-supply from device tree 
[    5.651794] dwhdmi-rockchip fde80000.hdmi: Looking up avdd-0v9-supply property in node /hdmi@fde80000 failed 
[    5.651804] dwhdmi-rockchip fde80000.hdmi: Looking up avdd-1v8-supply from device tree 
[    5.651811] dwhdmi-rockchip fde80000.hdmi: Looking up avdd-1v8-supply property in node /hdmi@fde80000 failed 
[    5.652245] dwhdmi-rockchip fde80000.hdmi: registered ddc I2C bus driver 
[    5.652847] rockchip-drm display-subsystem: bound fde80000.hdmi (ops 0xffff8000091496d0) 
[    5.652945] dwhdmi-rockchip fdea0000.hdmi: Looking up avdd-0v9-supply from device tree 
[    5.652954] dwhdmi-rockchip fdea0000.hdmi: Looking up avdd-0v9-supply property in node /hdmi@fdea0000 failed 
[    5.652965] dwhdmi-rockchip fdea0000.hdmi: Looking up avdd-1v8-supply from device tree 
[    5.652972] dwhdmi-rockchip fdea0000.hdmi: Looking up avdd-1v8-supply property in node /hdmi@fdea0000 failed 
[    5.653357] dwhdmi-rockchip fdea0000.hdmi: registered ddc I2C bus driver 
[    5.653921] rockchip-drm display-subsystem: bound fdea0000.hdmi (ops 0xffff8000091496d0) 
[    5.850665] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[    5.850698] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 2560x1080p60, type: 11(
if:800, flag:0x0) for vp0 dclk: 181320000 
[    5.850882] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:1baad0 rate:1813200 
[    5.851157] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[    5.851199] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 181320000 
[    5.854710] dwhdmi-rockchip fde80000.hdmi: don't use dsc mode 
[    5.854714] dwhdmi-rockchip fde80000.hdmi: dw hdmi qp use tmds mode 
[    5.854720] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x1baad0,bit_rate:1813200 
[    5.854914] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked! 
[    5.854939] dwhdmi-rockchip fde80000.hdmi: Rate 181320000 missing; compute N dynamically 
[    5.867943] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[    5.894369] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[    5.894541] dw-hdmi-qp-hdcp dw-hdmi-qp-hdcp.3.auto: dw_hdcp_qp_hdcp_probe success 
[    5.894657] dw-hdmi-qp-hdcp dw-hdmi-qp-hdcp.6.auto: dw_hdcp_qp_hdcp_probe success 
[    5.902857] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[    5.994743] rk_hdmirx fdee0000.hdmirx-controller: No reserved memory for HDMIRX, use default CMA 
[    5.994765] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_probe: cpu_aff:0x500, Bound_cpu:5, wdt_cfg_bound_cp
u:6, phy_cpuid:5 
[    5.995254] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_audio_interrupts_setup: 0 
[    5.996413] rk_hdmirx fdee0000.hdmirx-controller: rk_hdmirx_hdcp_register success 
[    5.996459] rk_hdmirx fdee0000.hdmirx-controller: fdee0000.hdmirx-controller driver probe ok! 
[    6.029186] input: rockchip-hdmi0 rockchip-hdmi0 as /devices/platform/hdmi0-sound/sound/card0/input1 
[    6.030570] input: rockchip-hdmi1 rockchip-hdmi1 as /devices/platform/hdmi1-sound/sound/card1/input2 
[    6.031487] input: rockchip-hdmi2 rockchip-hdmi2 as /devices/platform/dp0-sound/sound/card2/input3 
[    6.043671] input: rockchip,hdmiin rockchip,hdmiin as /devices/platform/hdmiin-sound/sound/card3/input4 
[    6.096220] rockchip-dmc dmc: hdmirx_rate = 2112000000 
[    6.165742]   #0: rockchip-hdmi0 
[    6.165746]   #1: rockchip-hdmi1 
[    6.165750]   #2: rockchip-hdmi2 
[    6.165754]   #3: rockchip,hdmiin 
[    6.642810] rc rc0: dw_hdmi_qp as /devices/platform/fde80000.hdmi/rc/rc0 
[    6.642919] input: dw_hdmi_qp as /devices/platform/fde80000.hdmi/rc/rc0/input5 
[    6.643762] rc rc1: dw_hdmi_qp as /devices/platform/fdea0000.hdmi/rc/rc1 
[    6.643995] input: dw_hdmi_qp as /devices/platform/fdea0000.hdmi/rc/rc1/input6 
[    7.187007] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[    8.123479] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_cancel_cpu_limit_freq freq qos nod add 
[    9.959423] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.296776] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_cancel_cpu_limit_freq freq qos nod add 
[   10.320104] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_cancel_cpu_limit_freq freq qos nod add 
[   10.336798] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_cancel_cpu_limit_freq freq qos nod add 
[   10.389304] dwhdmi-rockchip fde80000.hdmi: Rate 181320000 missing; compute N dynamically 
[   10.392631] dwhdmi-rockchip fde80000.hdmi: Rate 181320000 missing; compute N dynamically 
[   10.427347] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_audio_startup: device is no connected or audio is o
ff 
[   10.427405] hdmi-audio-codec hdmi-audio-codec.15.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19 
[   10.427444]  rockchip,hdmiin: ASoC: error at __soc_pcm_open on rockchip,hdmiin: -19 
[   10.439714] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_audio_startup: device is no connected or audio is o
ff 
[   10.439765] hdmi-audio-codec hdmi-audio-codec.15.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19 
[   10.439804]  rockchip,hdmiin: ASoC: error at __soc_pcm_open on rockchip,hdmiin: -19 
[   10.471002] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.484601] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.501248] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.517859] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.520089] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_cancel_cpu_limit_freq freq qos nod add 
[   10.534541] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.551135] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.567886] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.584435] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.601091] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.617806] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.634520] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.651238] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.667891] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.684465] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.701119] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.717860] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   10.734435] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   11.313212] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   11.334892] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   11.367837] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   14.241288] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   26.756785] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_cancel_cpu_limit_freq freq qos nod add 
[   26.773474] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_cancel_cpu_limit_freq freq qos nod add 
[   26.821370] dwhdmi-rockchip fde80000.hdmi: Rate 181320000 missing; compute N dynamically 
[   26.823235] dwhdmi-rockchip fde80000.hdmi: Rate 181320000 missing; compute N dynamically 
[   26.851861] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_audio_startup: device is no connected or audio is o
ff 
[   26.851922] hdmi-audio-codec hdmi-audio-codec.15.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19 
[   26.851966]  rockchip,hdmiin: ASoC: error at __soc_pcm_open on rockchip,hdmiin: -19 
[   26.864202] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_audio_startup: device is no connected or audio is o
ff 
[   26.864251] hdmi-audio-codec hdmi-audio-codec.15.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19 
[   26.864289]  rockchip,hdmiin: ASoC: error at __soc_pcm_open on rockchip,hdmiin: -19 
[   26.871886] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   26.884143] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   26.900807] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   26.917455] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   26.934045] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   26.936775] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_cancel_cpu_limit_freq freq qos nod add 
[   26.950785] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   26.967333] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   26.984119] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.000791] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.017457] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.034125] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.050735] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.067419] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.084182] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.100900] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.117464] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.134222] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.357208] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.384377] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   27.417427] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   29.891446] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   29.917332] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   29.950774] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   30.034172] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 4096x2160p60, type: 11(
if:800, flag:0x0) for vp0 dclk: 594000000 
[   30.034294] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:5aa320 rate:1813200 
[   30.034557] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   30.034649] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:5aa320 rate:5940000 
[   30.034911] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   30.051609] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 594000000 
[   30.162291] dwhdmi-rockchip fde80000.hdmi: don't use dsc mode 
[   30.162295] dwhdmi-rockchip fde80000.hdmi: dw hdmi qp use tmds mode 
[   30.162300] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x5aa320,bit_rate:5940000 
[   30.162487] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked! 
[   30.185012] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   30.745555] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   63.357828] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   63.385000] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   63.501892] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 5120x2160p60, type: 11(
if:800, flag:0x0) for vp0 dclk: 742500000 
[   63.502011] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42625a00 rate:5940000 
[   63.502273] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   63.520618] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42625a00 rate:5940000 
[   63.520880] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   63.520935] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_lcpll_cmn_config rate:40000000 
[   63.521175] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   63.521180] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 371250000 
[   63.521209] dwhdmi-rockchip fde80000.hdmi: don't use dsc mode 
[   63.521214] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x42625a00,bit_rate:40000000 
[   63.521407] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked! 
[   63.584274] dwhdmi-rockchip fde80000.hdmi: goto ltsp 
[   63.586706] dwhdmi-rockchip fde80000.hdmi: flt success

And here is the log of 6.18 booting DietPi:

dietpi@DietPi:~$ uname -a
Linux DietPi 6.18.0-rc4-edge-rockchip64 #1 SMP PREEMPT Sun Nov  2 19:28:02 UTC 2025 aarch64 GNU/Linux


dietpi@DietPi:~$ sudo dmesg | grep -i -e hdmi -e “Update mode to”
[    0.000000] OF: reserved mem: initialized node hdmi-receiver-cma, compatible id shared-dma-pool
[    0.000000] OF: reserved mem: 0x00000000e6000000..0x00000000efffffff (163840 KiB) nomap non-reusable hdmi-receiver-cma
[    0.045795] /vop@fdd90000: Fixed dependency cycle(s) with /hdmi@fde80000
[    0.045828] /hdmi@fde80000: Fixed dependency cycle(s) with /vop@fdd90000
[    0.062440] /vop@fdd90000: Fixed dependency cycle(s) with /hdmi@fdea0000
[    0.062476] /hdmi@fdea0000: Fixed dependency cycle(s) with /vop@fdd90000
[    0.064193] /hdmi@fde80000: Fixed dependency cycle(s) with /hdmi0-con
[    0.064224] /hdmi0-con: Fixed dependency cycle(s) with /hdmi@fde80000
[    0.064324] /hdmi@fdea0000: Fixed dependency cycle(s) with /hdmi1-con
[    0.064356] /hdmi1-con: Fixed dependency cycle(s) with /hdmi@fdea0000
[    4.820722] dwhdmiqp-rockchip fde80000.hdmi: registered DesignWare HDMI QP I2C bus driver
[    4.820878] rockchip-drm display-subsystem: bound fde80000.hdmi (ops dw_hdmi_qp_rockchip_ops [rockchipdrm])
[    4.821541] dwhdmiqp-rockchip fdea0000.hdmi: registered DesignWare HDMI QP I2C bus driver
[    4.821703] rockchip-drm display-subsystem: bound fdea0000.hdmi (ops dw_hdmi_qp_rockchip_ops [rockchipdrm])
[    7.188743] snps_hdmirx fdee0000.hdmi_receiver: assigned reserved memory node hdmi-receiver-cma
[   18.261631] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.261748] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.261780] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.261804] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.261870] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.261939] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.262049] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.262114] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.262139] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.262161] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.262221] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.262291] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.264606] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.264778] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.264850] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.264915] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.265014] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.265121] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.265226] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.265422] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.265503] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.265583] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.265692] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.265810] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.265902] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.266003] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.266103] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.266231] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.266405] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.266459] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.266484] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.266507] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.266564] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.266631] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.266704] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.266755] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.266778] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.266800] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.266857] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.266923] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.267000] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.267192] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.267258] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.267323] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.267419] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.267523] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.267609] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.267795] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.267875] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.267954] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.268063] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.268181] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.322164] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.322267] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.322296] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.322323] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.322385] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.322454] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.322564] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.322630] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.322654] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.322677] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.322738] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.322807] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.322900] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.323058] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.323129] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.323196] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.323304] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.323411] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.323508] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.323706] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.323787] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.323866] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.323975] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.324092] hdmi-audio-codec hdmi-audio-codec.6.auto: ASoC error (-19): at snd_soc_dai_prepare() on i2s-hifi
[   18.324181] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.324281] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.324379] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.324508] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0
[   18.324683] hdmi-audio-codec hdmi-audio-codec.6.auto: HDMI: Unknown ELD version 0

Please note that no mode change is logged, even isn’t the one I did to 3840x2160 after desktop has loaded.

Using this kernel, manually add and switch to any 5K mode doesn’t work at all:

dietpi@DietPi:~$ xrandr
Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 4096 x 4096
HDMI-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 929mm x 392mm
2560x1080     60.00 +
3840x2160     30.00*   25.00    24.00    29.97    23.98
2560x1440     59.95
2048x1152     60.00
1920x1200     59.95
1920x1080     60.00    60.00    50.00    59.94
1600x1200     60.00
1680x1050     59.88
1280x1024     75.02    60.02
1280x800      59.91
1152x864      75.00
1280x720      60.00    50.00    59.94
1024x768      75.03    60.00
800x600       75.00    60.32
720x576       50.00
720x480       60.00    59.94
640x480       75.00    60.00    59.94
720x400       70.08
5120x2160_60.00  59.99
5120x2160_75.00  74.95
HDMI-2 disconnected (normal left inverted right x axis y axis)

dietpi@DietPi:~$ xrandr -s 5120x2160
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  140 (RANDR)
Minor opcode of failed request:  2 (RRSetScreenConfig)
Value in failed request:  0x1400
Serial number of failed request:  14
Current serial number in output stream:  14

dietpi@DietPi:~$ xrandr -s 5120x2160 -r 60
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  140 (RANDR)
Minor opcode of failed request:  2 (RRSetScreenConfig)
Value in failed request:  0x1400
Serial number of failed request:  14
Current serial number in output stream:  14

dietpi@DietPi:~$ xrandr -s 5120x2160 -r 75
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  140 (RANDR)
Minor opcode of failed request:  2 (RRSetScreenConfig)
Value in failed request:  0x1400
Serial number of failed request:  14
Current serial number in output stream:  14

Yes, but as always there is a bit overhead, because you have also blanking.

https://www.monitortests.com/blog/timing-parameters-explained/
https://de.wikipedia.org/wiki/Pixeltakt
https://forum.digikey.com/t/lcd-tft-displays-timing-parameters-explained/47147

And as we see here (On the radxa kernel), it wants ≈742,5 MHz
But goes back to 372, PHY can only provide as much:

So I’m not sure that it is running at 60Hz, even with the radxa kernel :thinking:
How can you verify you get the 60hz?

So there is either no DSC support in the driver, or the monitor can not do DSC?

I check that with display info in monitor’s menu UI. And I can tell that moving cursor and windows is clearly much more fluent after switching to any higher refresh rate 5K mode compared to the basic 30 Hz one.

Ah ok I learned now, you can reach the 60Hz with this resolution, but with fewer bandwith, so the picture loses probably some quality. Sry for the madness :smiley:

Its a RC kernel, probably thats why. Some audio functionality errors put and I guess it then stops to log anything.

xserver’s “screen” size is just 3840 x 2160, and max is currently 4096 x 4096 so it can not set anything higher.
You can problay change that by editing your xorg.conf, setting in virtual resultion to

Virtual 5120 2160
1 Like

Hmm, the pixel clock rates logged by the old kernel do not match 5k@60Hz at all, and it does say don't use dsc mode as well. How is this possible? Is there another another way to force higher resolution and frequency through limited bandwidth?

Please explain :nerd_face:.

RC or not is not related. Linux does not enable debug flags on master branch or so, and RC’s are in any case potentially ready for release, just going through more testing and bug fix time. So I guess mainline Linux does just not log mode changes, respectively the mainline Rockchip HDMI driver does not. And it seems to be stricter regarding max pixel clock rates, or does not support whichever magic the vendor kernel does, to force higher resolution/frequency through lower bandwidth.

The HDMI audio codec errors are dumb indeed, respectively that it seems to retry reading that info from the monitor over and over. Funnily, the same error was reported for RPi with Kodi in 2022:

Does HDMI audio finally work despite those errors?

This was just my own amateurish conclusison, maybe it reduced color depth or something, how else should this be possible:

[   63.501892] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 5120x2160p60, type: 11(
if:800, flag:0x0) for vp0 dclk: 742500000 
[   63.502011] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42625a00 rate:5940000 
[   63.502273] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   63.520618] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42625a00 rate:5940000 
[   63.520880] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   63.520935] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_lcpll_cmn_config rate:40000000 
[   63.521175] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   63.521180] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 371250000 
[   63.521209] dwhdmi-rockchip fde80000.hdmi: don't use dsc mode 

This could also explain the instability in the connection?

No idea how color depth is calculated in. Maybe some more reading about those pixel clock rates is needed to interpret things correctly, also which rate at which component is relevant for what. Like vp0 dclk: 742,500,000 that would be enough for 5k@60Hz. But this is the VOP, while the PHY shows rate:5,940,000 then rate:40,000,000 (are there zeros missing, different unit, different type of clock rate?), and finally TDMS at 371,250,000.

1 Like

Yes, I confirm that. There is one visible display defect, the rainbow color effect on line or some text edges. And then those random blanks if related to that.

You are right, I truncated the log output as the same log pattern repeated couple of times more.

Yes, it surprisingly does.

Thank you guys you for your interest, I appreciate your dedication to this! I am available for any testing needed.

1 Like

When running the old 6.1.43-15-rk2312 kernel and using the rock-5b-hdmi1-8k.dtbo in Raxda Debian 12 I get 742500000 pixel clock when I switch to 5120x2160@120. Although this is less then 1485000000 needed for this mode, it is more than 675216000 needed for 5120x2160@60. BTW, monitor reports 96 Hz.

[   31.958756] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 4096x2160p60, type: 11(if:800, flag:0x
0) for vp0 dclk: 594000000 
[   31.958884] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:5aa320 rate:1813200 
[   31.959149] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   31.959256] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:5aa320 rate:5940000 
[   31.959519] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   31.976224] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 594000000 
[   32.083851] dwhdmi-rockchip fde80000.hdmi: don't use dsc mode 
[   32.083856] dwhdmi-rockchip fde80000.hdmi: dw hdmi qp use tmds mode 
[   32.083860] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x5aa320,bit_rate:5940000 
[   32.084047] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked! 
[   32.109622] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   32.744772] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   68.533374] dwhdmi-rockchip fde80000.hdmi: use tmds mode 
[   68.628614] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 5120x2160p120, type: 11(if:800, flag:0
x0) for vp0 dclk: 1485000000 
[   68.629111] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42625a00 rate:5940000 
[   68.629403] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   68.640007] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42625a00 rate:5940000 
[   68.640296] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   68.640366] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_lcpll_cmn_config rate:40000000 
[   68.640640] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[   68.640654] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 742500000 
[   68.640714] dwhdmi-rockchip fde80000.hdmi: don't use dsc mode 
[   68.640724] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x42625a00,bit_rate:40000000 
[   68.640934] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked! 
[   68.706483] dwhdmi-rockchip fde80000.hdmi: goto ltsp 
[   68.709095] dwhdmi-rockchip fde80000.hdmi: flt success

So it seems to get enough pixel clock for 5120x2160@60 should be possible. But if I switch to 5120x2160@60, I get 371250000 only again.

[  949.008712] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 5120x2160p60, type: 11(if:800, flag:0x
0) for vp0 dclk: 742500000 
[  949.008843] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42625a00 rate:5940000 
[  949.009106] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[  949.027452] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:42625a00 rate:5940000 
[  949.027714] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[  949.027769] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_lcpll_cmn_config rate:40000000 
[  949.028009] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked! 
[  949.028013] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 371250000 
[  949.028042] dwhdmi-rockchip fde80000.hdmi: don't use dsc mode 
[  949.028047] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x42625a00,bit_rate:40000000 
[  949.028241] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked! 
[  949.091602] dwhdmi-rockchip fde80000.hdmi: goto ltsp 
[  949.094034] dwhdmi-rockchip fde80000.hdmi: flt success

The above is possible only with the old kernel. If I boot the 6.1.84-8-rk2410 kernel and use the rebuilt rock-5b-hdmi1-8k.dtbo any attempt to switch to more than basic 5120x2160@30 ends with the lost video signal.

BTW running 5120x2160@120/96 provides the same rainbow color effect on some edges, but no blanks so far.