Can not set Display resolution to 3440x1440 for Dell monitor

Which system do you use? Android, Ubuntu, OOWOW or others?

Ubuntu 24.04

Which version of system do you use? Please provide the version of the system here:

BOARD=VIM3
VENDOR=Amlogic
VERSION=1.6.8
ARCH=arm64
INITRD_ARCH=arm64
INSTALL_TYPE=SD-USB
IMAGE_VERSION=1.6.8-240605
################ GIT VERSION ################
UBOOT_GIT_VERSION=khadas-edges-u-boot-2017.09-v1.6.8-release
LINUX_GIT_VERSION=khadas-linux-6.9.y-v1.6.8-release
FENIX_GIT_VERSION=v1.6.8
#############################################

Please describe your issue below:

I can not select the Display resolution 3440x1440 for connected DELL U3415W monitor

Post a console log of your issue below:

root@Khadas:/home/khadas# systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION

0 loaded units listed.



root@Khadas:/home/khadas# get-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
Looks like no busses have an EDID. Sorry!
I’m sorry nothing was successful. Maybe try some other arguments
if you played with them, or send an email to Matthew Kern <pyrophobicman@gmail.com>.


root@Khadas:/home/khadas# dmesg

[dmesg-2025-12-21.txt|attachment](upload://wAc3uGvHXYWTwJC3NEasuNP823Z.txt) (33.9 KB)


root@Khadas:\~# lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nbd0          43:0    0    0B  0 disk
nbd1          43:32   0    0B  0 disk
nbd2          43:64   0    0B  0 disk
nbd3          43:96   0    0B  0 disk
nbd4          43:128  0    0B  0 disk
nbd5          43:160  0    0B  0 disk
nbd6          43:192  0    0B  0 disk
nbd7          43:224  0    0B  0 disk
mmcblk1      179:0    0 29.1G  0 disk
├─mmcblk1p1  179:1    0  240M  0 part /boot
└─mmcblk1p2  179:2    0 28.6G  0 part /
mmcblk1boot0 179:32   0    4M  1 disk
mmcblk1boot1 179:64   0    4M  1 disk
zram0        253:0    0    0B  0 disk
zram1        253:1    0  472M  0 disk \[SWAP\]
zram2        253:2    0  472M  0 disk \[SWAP\]
zram3        253:3    0  472M  0 disk \[SWAP\]
zram4        253:4    0  472M  0 disk \[SWAP\]
zram5        253:5    0    0B  0 disk
nbd8          43:256  0    0B  0 disk
nbd9          43:288  0    0B  0 disk
nbd10         43:320  0    0B  0 disk
nbd11         43:352  0    0B  0 disk
nbd12         43:384  0    0B  0 disk
nbd13         43:416  0    0B  0 disk
nbd14         43:448  0    0B  0 disk
nbd15         43:480  0    0B  0 disk

Output collected while logged in as khadas user:

root@Khadas:/home/khadas# cat xrandr.txt

Screen 0: minimum 16 x 16, current 1920 x 1080, maximum 32767 x 32767
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 800mm x 330mm
1920x1080     59.96\*+
1440x1080     59.99
1400x1050     59.98
1280x1024     59.89
1280x960      59.94
1152x864      59.96
1024x768      59.92
800x600       59.86
640x480       59.38
320x240       59.52
1680x1050     59.95
1440x900      59.89
1280x800      59.81
1152x720      59.97
960x600       59.63
928x580       59.88
800x500       59.50
768x480       59.90
720x480       59.71
640x400       59.95
320x200       58.96
1600x900      59.95
1368x768      59.88
1280x720      59.86
1024x576      59.90
864x486       59.92
720x400       59.55
640x350       59.77



root@Khadas:/home/khadas# cat inxi-Gxx.txt
Graphics:
Device-1: meson-g12a-vpu driver: meson_drm v: N/A bus-ID: N/A
chip-ID: amlogic:ff900000
Device-2: meson-g12a-mali driver: panfrost v: kernel bus-ID: N/A
chip-ID: amlogic:ffe40000
Device-3: meson-g12a-dw-hdmi driver: meson_dw_hdmi v: N/A bus-ID: N/A
chip-ID: amlogic:ff600000
Display: wayland server: X.org v: 1.21.1.11 with: Xwayland v: 23.2.6
compositor: gnome-shell v: 46.0 driver: N/A display-ID: 0
Monitor-1: HDMI-A-1 model: Dell U3415W res: 3440x1440 dpi: 109
diag: 865mm (34.1")
API: EGL v: 1.5 platforms: device: 0 egl: 1.4 drv: panfrost device: 1
drv: swrast gbm: egl: 1.4 drv: meson surfaceless: egl: 1.4 drv: panfrost
wayland: egl: 1.4 drv: panfrost x11: egl: 1.4 drv: panfrost
API: OpenGL v: 4.5 compat-v: 3.1 vendor: mesa v: 24.0.5-1ubuntu1
glx-v: 1.4 direct-render: yes renderer: Mali-G52 (Panfrost)
device-ID: ffffffff:ffffffff display-ID: :0.0


root@Khadas:/home/khadas# cat glxinfo-B.txt
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Mesa (0xffffffff)
Device: Mali-G52 (Panfrost) (0xffffffff)
Version: 24.0.5
Accelerated: yes
Video memory: 3775MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 3.1
Max compat profile version: 3.1
Max GLES1 profile version: 1.1
Max GLES\[23\] profile version: 3.1
OpenGL vendor string: Mesa
OpenGL renderer string: Mali-G52 (Panfrost)
OpenGL core profile version string: 3.1 Mesa 24.0.5-1ubuntu1
OpenGL core profile shading language version string: 1.40
OpenGL core profile context flags: (none)

OpenGL version string: 3.1 Mesa 24.0.5-1ubuntu1
OpenGL shading language version string: 1.40
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 24.0.5-1ubuntu1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10


root@Khadas:/home/khadas# cat /boot/env.txt

env.txt-2025-12-21.txt (4.5 KB)

Hello @amach4

You use the mainline kernel of 6.9.x kernel which may not support the 3440x1440 resolution, please try to use the latest 1.7.5 release with 5.15 kernel.

The kernel needs to be compiled with this patch to use 3440x1440 resolution output:

2 Likes

thank you for your hint, I’ve tested with the image you mentioned but no luck so far,

I understand “mesa” driver is used per default and not panfrost.

-

root@Khadas:/home/khadas# cat /etc/fenix-release

PLEASE DO NOT EDIT THIS FILE

BOARD=VIM3
VENDOR=Amlogic
VERSION=1.7.5
ARCH=arm64
INITRD_ARCH=arm64
INSTALL_TYPE=SD-USB
IMAGE_VERSION=1.7.5-250925
################ GIT VERSION ################
UBOOT_GIT_VERSION=khadas-vims-u-boot-2015.01-5.15-v1.7.5-release
LINUX_GIT_VERSION=khadas-vims-linux-5.15-v1.7.5-release
FENIX_GIT_VERSION=v1.7.5
#############################################

-

root@Khadas:/home/khadas# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
mmcblk0 179:0 0 29.1G 0 disk
├─mmcblk0p1 179:1 0 240M 0 part /boot
└─mmcblk0p2 179:2 0 28.6G 0 part /
mmcblk0boot0 179:8 0 4M 1 disk
mmcblk0boot1 179:16 0 4M 1 disk
zram0 253:0 0 0B 0 disk
zram1 253:1 0 462.1M 0 disk [SWAP]
zram2 253:2 0 462.1M 0 disk [SWAP]
zram3 253:3 0 462.1M 0 disk [SWAP]
zram4 253:4 0 462.1M 0 disk [SWAP]
zram5 253:5 0 0B 0 disk

-

root@Khadas:/home/khadas# cat xrandr.txt
Screen 0: minimum 16 x 16, current 1920 x 1080, maximum 32767 x 32767
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 800mm x 330mm
1920x1080 59.96*+
1440x1080 59.99
1400x1050 59.98
1280x1024 59.89
1280x960 59.94
1152x864 59.96
1024x768 59.92
800x600 59.86
640x480 59.38
320x240 59.52
1680x1050 59.95
1440x900 59.89
1280x800 59.81
1152x720 59.97
960x600 59.63
928x580 59.88
800x500 59.50
768x480 59.90
720x480 59.71
640x400 59.95
320x200 58.96
1600x900 59.95
1368x768 59.88
1280x720 59.86
1024x576 59.90
864x486 59.92
720x400 59.55
640x350 59.77

-

root@Khadas:/home/khadas# cat inxi-Gxx.txt
Graphics:
Device-1: vpu-g12b driver: vpu v: kernel bus-ID: N/A
chip-ID: amlogic:ff63c000
Device-2: amhdmitx-g12b driver: amhdmitx v: N/A bus-ID: N/A
chip-ID: amlogic:ffd00000
Display: wayland server: X.org v: 1.21.1.11 with: Xwayland v: 23.2.6
compositor: gnome-shell v: 46.0 driver: gpu: meson,meson-vpu display-ID: 0
Monitor-1: HDMI-A-1 model: Dell U3415W res: 3440x1440 dpi: 109
diag: 865mm (34.1")
API: EGL v: 1.5 platforms: wayland: drv: arm inactive: gbm
API: OpenGL v: 4.5 vendor: mesa v: 25.0.7-0ubuntu0.24.04.2 glx-v: 1.4
es-v: 3.2 direct-render: yes renderer: llvmpipe (LLVM 20.1.2 128 bits)
device-ID: ffffffff:ffffffff display-ID: :0.0

-

root@Khadas:/home/khadas# cat glxinfo-B.txt
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Mesa (0xffffffff)
Device: llvmpipe (LLVM 20.1.2, 128 bits) (0xffffffff)
Version: 25.0.7
Accelerated: no
Video memory: 3696MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.5
Max compat profile version: 4.5
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
VBO free memory - total: 0 MB, largest block: 0 MB
VBO free aux. memory - total: 2563 MB, largest block: 2563 MB
Texture free memory - total: 0 MB, largest block: 0 MB
Texture free aux. memory - total: 2563 MB, largest block: 2563 MB
Renderbuffer free memory - total: 0 MB, largest block: 0 MB
Renderbuffer free aux. memory - total: 2563 MB, largest block: 2563 MB
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 4294192149 MB
Total available memory: 4294195845 MB
Currently available dedicated video memory: 0 MB
OpenGL vendor string: Mesa
OpenGL renderer string: llvmpipe (LLVM 20.1.2, 128 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 25.0.7-0ubuntu0.24.04.2
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.5 (Compatibility Profile) Mesa 25.0.7-0ubuntu0.24.04.2
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 25.0.7-0ubuntu0.24.04.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

-

root@Khadas:/home/khadas# dmesg

dmesg-2025-12-22-5.15-1.7.5.txt (178.3 KB)

FYI: Based on the default setup there are failed systemd untis:

root@Khadas:~# systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
● tee-supplicant.service loaded failed failed Optee Tee-Supplicant
● video-firmware-preload-khadas.service loaded failed failed Amlogic OPTEE Video Firmware Preload Service

Legend: LOAD → Reflects whether the unit definition was properly loaded.
ACTIVE → The high-level unit activation state, i.e. generalization of SUB.
SUB → The low-level unit activation state, values depend on unit type.

2 loaded units listed.

Tested to set edid file based on the steps described at:

but no success so far

more details about failed systemd units:

root@Khadas:~# systemctl status tee-supplicant.service
× tee-supplicant.service - Optee Tee-Supplicant
Loaded: loaded (/usr/lib/systemd/system/tee-supplicant.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Mon 2025-12-22 13:11:43 UTC; 1min 23s ago
Duration: 10.168s
Process: 4331 ExecStart=/usr/bin/tee-supplicant (code=exited, status=1/FAILURE)
Process: 4464 ExecStopPost=/sbin/modprobe -r optee (code=exited, status=1/FAILURE)
Main PID: 4331 (code=exited, status=1/FAILURE)
CPU: 136ms

Dec 22 13:11:33 Khadas systemd[1]: Starting tee-supplicant.service - Optee Tee-Supplicant…
Dec 22 13:11:33 Khadas systemd[1]: Started tee-supplicant.service - Optee Tee-Supplicant.
Dec 22 13:11:43 Khadas tee-supplicant[4331]: ERR [4331] TEES:main:680: set sys boot complete failed
Dec 22 13:11:43 Khadas tee-supplicant[4331]: ERR [4331] TEES:main:701: failed to find an OP-TEE supplicant device
Dec 22 13:11:43 Khadas systemd[1]: tee-supplicant.service: Main process exited, code=exited, status=1/FAILURE
Dec 22 13:11:43 Khadas modprobe[4464]: modprobe: FATAL: Module amlogic_tee is in use.
Dec 22 13:11:43 Khadas systemd[1]: tee-supplicant.service: Control process exited, code=exited, status=1/FAILURE
Dec 22 13:11:43 Khadas systemd[1]: tee-supplicant.service: Failed with result ‘exit-code’.

-

root@Khadas:~# lsmod |grep -i amlogic_tee
amlogic_tee 24576 8 aml_media,jpegenc,amvdec_vp9,encoder,amlogic_dvb_demux,amvdec_vp9_v4l,firmware,decoder_common
tee 61440 2 aml_media,amlogic_tee
amlogic_secmon 32768 8 amlogic_efuse_unifykey,amlogic_thermal,amlogic_snd_soc,amlogic_dvb,amlogic_socinfo,amlogic_tee,user_fault,amlogic_cpuinfo
amlogic_debug 77824 47 aml_media,amvdec_mmpeg12_v4l,dwmac_meson8b,amlogic_pm,amlogic_crypto_dma,amlogic_efuse_unifykey,amvdec_av1,amvdec_mh264_v4l,amvdec_mh264,amvdec_mavs_v4l,amvdec_avs2_fb_v4l,amvdec_avs3_v4l,amvdec_h265_v4l,amlogic_memory_debug,amvdec_vp9,amlogic_thermal,amvdec_mmpeg4,amlogic_snd_soc,amvdec_h265,amvdec_mavs,amvdec_mmjpeg_v4l,amvdec_ports,amlogic_host,amvdec_mmjpeg,amlogic_dvb,amlogic_dvb_demux,media_sync,amlogic_secmon,amlogic_i2c,amlogic_pwm,amvdec_vc1,amvdec_vp9_v4l,stream_input,amvdec_mmpeg4_v4l,amlogic_socinfo,amlogic_clk,decoder_common,amlogic_tee,amlogic_jtag,bl40_module,amvdec_av1_v4l,amvdec_mmpeg12,amlogic_cpufreq,amlogic_power,amvdec_avs2_v4l,amlogic_cpuinfo,amvdec_avs2

-

root@Khadas:~# systemctl status video-firmware-preload-khadas.service
× video-firmware-preload-khadas.service - Amlogic OPTEE Video Firmware Preload Service
Loaded: loaded (/usr/lib/systemd/system/video-firmware-preload-khadas.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Mon 2025-12-22 13:11:40 UTC; 2min 9s ago
Duration: 17ms
Process: 4459 ExecStart=/usr/bin/tee_preload_fw /lib/firmware/video/video_ucode.bin (code=exited, status=255/EXCEPTION)
Main PID: 4459 (code=exited, status=255/EXCEPTION)
CPU: 14ms

Dec 22 13:11:40 Khadas systemd[1]: Started video-firmware-preload-khadas.service - Amlogic OPTEE Video Firmware Preload Service.
Dec 22 13:11:40 Khadas tee_preload_fw[4459]: fw_path = /lib/firmware/video/video_ucode.bin
Dec 22 13:11:40 Khadas tee_preload_fw[4459]: ree skip header length 0x0
Dec 22 13:11:40 Khadas tee_preload_fw[4459]: TEEC_InitializeContext failed with code 0xffff0008
Dec 22 13:11:40 Khadas tee_preload_fw[4459]: tee preload video fw fail
Dec 22 13:11:40 Khadas systemd[1]: video-firmware-preload-khadas.service: Main process exited, code=exited, status=255/EXCEPTION
Dec 22 13:11:40 Khadas systemd[1]: video-firmware-preload-khadas.service: Failed with result ‘exit-code’.

-

root@Khadas:~# ll /lib/firmware/video/video_ucode.bin
-rwxr-xr-x 1 root root 1963776 Sep 25 13:41 /lib/firmware/video/video_ucode.bin*

@chewitt thank you, first I compiled the kernel for openSUSE Tumbleweed including the patch you mentioned, after booting with the patched kernel the display resolution was 3440x1440 but the refresh rate was at ~50Hz and not as expected at 60Hz, not sure are there other patches missing maybe?

Details:

root@Khadas:/home/khadas# dmesg

dmesg-patch.txt (50.4 KB)

-

khadas:/home/amach # cat xrandr-patch.txt
Screen 0: minimum 16 x 16, current 3440 x 1440, maximum 32767 x 32767
HDMI-1 connected primary 3440x1440+0+0 (normal left inverted right x axis y axis) 800mm x 330mm
3440x1440 49.96*+
1920x1440 49.92
1600x1200 49.92

-

khadas:/home/amach # cat inxi-Gxx-patch.txt
Graphics:
Device-1: meson-g12a-vpu driver: meson_drm v: kernel bus-ID: N/A
chip-ID: amlogic:ff900000
Device-2: meson-g12a-mali driver: panfrost v: kernel bus-ID: N/A
chip-ID: amlogic:ffe40000
Device-3: meson-g12a-dw-hdmi driver: meson_dw_hdmi v: kernel bus-ID: N/A
chip-ID: amlogic:ff600000
Display: wayland server: Xwayland v: 24.1.8 compositor: gnome-shell
v: 49.2 driver: gpu: meson-drm display-ID: 0
Monitor-1: HDMI-A-1 model: Dell U3415W res: 3440x1440 dpi: 109
diag: 865mm (34.1")
API: OpenGL v: 3.1 vendor: mesa v: 25.3.1 glx-v: 1.4 es-v: 3.1
direct-render: yes renderer: Mali-G52 (Panfrost)
device-ID: ffffffff:ffffffff display-ID: :0.0
API: EGL Message: EGL data requires eglinfo. Check --recommends.
Info: Tools: api: glxinfo x11: xprop,xrandr

-

khadas:/home/amach # cat glxinfo-B-patch.txt
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Mesa (0xffffffff)
Device: Mali-G52 (Panfrost) (0xffffffff)
Version: 25.3.1
Accelerated: yes
Video memory: 3785MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 3.1
Max compat profile version: 3.1
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.1
OpenGL vendor string: Mesa
OpenGL renderer string: Mali-G52 (Panfrost)
OpenGL core profile version string: 3.1 Mesa 25.3.1
OpenGL core profile shading language version string: 1.40
OpenGL core profile context flags: (none)

OpenGL version string: 3.1 Mesa 25.3.1
OpenGL shading language version string: 1.40
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 25.3.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

You can run “modetest” in most OS to see the modes advertised from the EDID data on the HDMI connector. If there is no 60Hz mode listed either the monitor isn’t capable of one and so doesn’t advertise one, or the link rate isn’t sufficient to support the required bandwidth, e.g. You might need to use HDMI 2.0 “certified” cables. I’ve no idea what desktop environment openSUSE runs, but it won’t be able to use modes that aren’t advertised.

@chewitt Thank you for the hint, I’ve patched and compiled the Ubuntu kernel based on the https://dl.khadas.com/products/vim3/firmware/ubuntu/generic/ubuntu-24.04/vim3-ubuntu-24.04-gnome-linux-6.9-fenix-1.6.8-240605.img.xz image, same result the display resolution is set to 3440x1440 but refresh rate is ~50Hz.

Note:

To get login screen as workaround I’ve renamed card2 to card2out and restarted gdm:

root@Khadas:/dev/dri# ll
total 0
drwxr-xr-x 3 root root 160 Jan 3 09:15 ./
drwxr-xr-x 17 root root 4080 Jan 3 09:11 ../
drwxr-xr-x 2 root root 140 Jan 3 09:15 by-path/
crw-rw----+ 1 root video 226, 0 Jan 3 09:16 card0
crw-rw----+ 1 root video 226, 1 Jan 3 09:11 card1
crw-rw----+ 1 root video 226, 2 Jan 3 09:11 card2out
crw-rw----+ 1 root render 226, 128 Jan 3 09:11 renderD128
crw-rw----+ 1 root render 226, 129 Jan 3 09:11 renderD129

root@Khadas:/dev/dri# systemctl restart gdm

-

root@Khadas:~# cat /boot/env.txt

Add customer kernel args here

user_kernel_args=video=HDMI-A-1:3440x1440MR@60

Here the modetest output:

modetest.txt (8.3 KB)

From dmesg output I get:

[ 1444.400251] meson-drm ff900000.vpu: [drm] User-defined mode not supported: “3440x1440”: 60 319750 3440 3520 3552 3600 1440 1468 1478 1481 0x68 0x9

dmesg.txt (53.1 KB)

inxi-Gxx.txt (917 Bytes)

xrandr.txt (1016 Bytes)


From the EDID data I’d expect ~60Hz should be possible, maybe I’m misreading this output:

Detailed Timing Descriptors:
DTD 1: 3440x1440 59.972616 Hz 43:18 88.819 kHz 319.750000 MHz (798 mm x 335 mm)
Hfront 80 Hsync 32 Hback 48 Hpol P
Vfront 28 Vsync 10 Vback 3 Vpol N
Display Product Serial Number: ‘F1T1W03213RL’
Display Product Name: ‘DELL U3415W’
Display Range Limits:
Monitor ranges (GTF): 48-85 Hz V, 30-89 kHz H, max dotclock 320 MHz

edid-decode-sys.txt (5.5 KB)

Also from the Dell vendor spec looks to me 60Hz is technically possible:

https://dl.dell.com/manuals/all-products/esuprt_display_projector/esuprt_display/dell-u3415w-monitor_user’s%20guide_en-us.pdf

DTD 1:  3440x1440   59.972616 Hz  43:18    88.819 kHz    319.750000 MHz (798 mm x 335 mm)

The mode is listed in EDID ^ so (semi-educated hunch) the kernel DRM layer is probably missing the clocking instructions cum recipe to achive 319.750000 MHz pixel clock so the (unachievable) mode is filtered out. I’ll have a chat with Martin Blumenstingl to see if my guess is correct and to see what ideas he might have.

@amach4 see if this (untested) patch from Martin allows the 3440x1440@60 mode to be used?

diff --git a/drivers/gpu/drm/meson/meson_vclk.c b/drivers/gpu/drm/meson/meson_vclk.c
index dfe0c28a0f05..a1fb3da00f06 100644
--- a/drivers/gpu/drm/meson/meson_vclk.c
+++ b/drivers/gpu/drm/meson/meson_vclk.c
@@ -700,8 +700,8 @@ static bool meson_hdmi_pll_find_params(struct meson_drm *priv,
 				       unsigned int *frac,
 				       unsigned int *od)
 {
-	/* Cycle from /16 to /2 */
-	for (*od = 16 ; *od > 1 ; *od >>= 1) {
+	/* Cycle from /16 to /1 */
+	for (*od = 16 ; *od > 0 ; *od >>= 1) {
 		*m = meson_hdmi_pll_get_m(priv, freq * *od);
 		if (!*m)
 			continue;
@@ -749,7 +749,10 @@ static void meson_hdmi_pll_generic_set(struct meson_drm *priv,
 	if (meson_hdmi_pll_find_params(priv, pll_freq, &m, &frac, &od)) {
 		/* OD2 goes to the PHY, and needs to be *10, so keep OD3=1 */
 		od3 = 1;
-		if (od < 4) {
+		if (od == 1) {
+			od1 = 1;
+			od2 = 1;
+		} else if (od < 4) {
 			od1 = 2;
 			od2 = 1;
 		} else {
1 Like

@chewitt Thanks a lot, kudos to you and Martin.

After applying both patches now the display resolution defaults to 3440x1440 with a refresh rate of ~60Hz:

root@Khadas:~# uname -a
Linux Khadas 6.8.12-patch2 #1 SMP Mon Jan 5 10:58:13 UTC 2026 aarch64 aarch64 aarch64 GNU/Linux

root@Khadas:~# cat /proc/cmdline
root=UUID=cf85f37b-c1c2-4d4f-bbec-86476480c93b rootfstype=ext4 rootflags=data=writeback rw ubootpart=401947f5-01 console=ttyAML0,115200n8 console=tty0 no_console_suspend
consoleblank=0 osd12 fbcon=rotate:0 fsck.repair=yes net.ifnames=0 jtag=disable mac=c8:63:14:72:5f:65 fan=auto khadas_board=VIM3 hwver=VIM3.V12 coherent_pool=2M pci=
pcie_bus_perf imagetype=SD-USB uboottype=mainline

root@Khadas:/home/khadas# cat xrandr.txt
Screen 0: minimum 16 x 16, current 3440 x 1440, maximum 32767 x 32767
HDMI-1 connected primary 3440x1440+0+0 (normal left inverted right x axis y axis) 800mm x 330mm
3440x1440 59.94*+

dmesg.txt (39.6 KB)

glxinfo-B.txt (981 Bytes)

inxi-Gxx.txt (912 Bytes)

xrandr.txt (1016 Bytes)


Now my next step is to find a way to get rid of the workaround to rename card2 → card2 out and restart gdm3:

@amach4 Can you please also test this (revised) patch:

If all is still good (should be) Martin will send the patch upstream.

@chewitt I’ve tested the revised patch and the Display resolution defaults still to 3440x1440@~60Hz as expected, from my POV the issue setting the Display resolution and refresh rate is fixed with the revised patch:

xrandr.txt (1016 Bytes)

inxi-Gxx.txt (912 Bytes)

glxinfo-B.txt (981 Bytes)

dmesg.txt (38.7 KB)

Thanks for confirming :+1: .. Martin should be sending that patch upstream.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.