HDR and DDC don't work with ThinkPad TB3 and 4 Dock's onboard display connections

Tested on ThinkPad T14s Intel Core Ultra 7 258V (Arc Graphics 140V), Fedora 43, GNOME 49, Wayland. When connecting the laptop and the monitor (AOC Q27G4XD) through the docks’ (ThinkPad Thunderbolt 4 Dock and ThinkPad Thunderbolt 3 Dock) DP and HDMI ports, I can choose up to 1440p 180Hz with DisplayPort, and 1440p 144Hz with HDMI, but in both cases there is no option to turn on HDR, DDC also doesn’t work (ddcutil doesn’t detect the monitor).

But if tried via a USB-C to HDMI adapter via the docks, both HDR and DDC work. Only the HDMI and DP ports on the dock itself doesn’t work.

With a Dell WD19TB (which I don’t have anymore), same laptop and same monitor, everything works too.

The monitor should support HDR input (although it’s only a 8-bit FRC panel). Same docks and monitor if tried with Windows on another laptop, HDR works.

By elimination it seems that the communication between the laptop and the docks (specifically ThinkPad docks) is the root cause.

Is there a Linux bug or a dock firmware bug?

Hardware

  • Laptop: ThinkPad T14s Gen 6 Intel
    • Core Ultra 7 258V
    • Arc Graphics 140V
  • Docks (tried 3 different docks, ThinkPad docks have the issues)
    • ThinkPad Thunderbolt 4 Dock (no HDR nor DDC)
    • ThinkPad Thunderbolt 3 Dock (no HDR nor DDC)
    • Dell WD19TB (both HDR and DDC works)
  • Monitor: AOC Q27G4XD

Software

  • Fedora 43
  • GNOME 49
  • Wayland
  • ThinkPad Thunderbolt 4 Dock firmware version 10.19

sudo fpaste --sysinfo --printonly (removed some irrelevant information because too long to post)

=== fpaste 0.5.0.0 System Information ===
* OS Release (lsb_release -ds):
     "Fedora Linux 43 (Workstation Edition)"

* CPU Model (grep 'model name' /proc/cpuinfo | awk -F: '{print $2}' | uniq -c |
     sed -re 's/^ +//' ):
     8  Intel(R) Core(TM) Ultra 7 258V

* 64-bit Support (grep -q ' lm ' /proc/cpuinfo && echo Yes || echo No):
     Yes

* Hardware Virtualization Support (grep -Eq '(vmx|svm)' /proc/cpuinfo && echo Yes || echo No):
     Yes

* Kernel (uname -r):
     6.19.9-200.fc43.x86_64

* Kernel cmdline (cat /proc/cmdline):
     BOOT_IMAGE=(hd0,gpt2)/vmlinuz-6.19.9-200.fc43.x86_64 root=UUID=a8d2e3fe-f17c-4431-92ed-9232611a9570 ro rootflags=subvol=root rd.luks.uuid=luks-3abc223c-54a6-4e53-a44f-91cbd1c45b2e rhgb quiet

* Desktop(s) Running (ps -eo comm= | grep -E '(gnome-session|startkde|startactive|xfce.?-session|fluxbox|blackbox|hackedbox|ratpoison|enlightenment|icewm-session|od-session|wmaker|wmx|openbox-lxde|openbox-gnome-session|openbox-kde-session|mwm|e16|fvwm|xmonad|sugar-session|mate-session|lxqt-session|cinnamon|lxdm-session|awesome|phosh|sway|Hyperland)' ):
     gnome-session-i
     gnome-session-c
     gnome-session-s

* Desktop(s) Installed (ls -m /usr/share/{xsessions,wayland-sessions}/ | sed 's/\.desktop//g' ):
     /usr/share/wayland-sessions/:
     gnome-classic, gnome-classic-wayland, gnome,
     gnome-wayland

     /usr/share/xsessions/:

* Session Type (env | grep 'XDG_SESSION_TYPE' | sed 's/.*=//' ):
     tty

* SELinux Status (sestatus):
     SELinux status:                 enabled
     SELinuxfs mount:                /sys/fs/selinux
     SELinux root directory:         /etc/selinux
     Loaded policy name:             targeted
     Current mode:                   enforcing
     Mode from config file:          enforcing
     Policy MLS status:              enabled
     Policy deny_unknown status:     allowed
     Memory protection checking:     actual (secure)
     Max kernel policy version:      35

* SELinux Errors (selinuxenabled && journalctl --no-hostname --since yesterday |grep avc: | grep -Eo comm="[^ ]+" | sort |uniq -c |sort -rn):
           7 comm="rpc-virtqemud"
           2 comm="virtiofsd-backe"
           2 comm="pasta"

* PCI devices (lspci -nn):
     00:00.0 Host bridge [0600]: Intel Corporation Device [8086:6400] (rev 04)
     00:02.0 VGA compatible controller [0300]: Intel Corporation Lunar Lake [Intel Arc Graphics 130V / 140V] [8086:64a0] (rev 04)
     00:04.0 Signal processing controller [1180]: Intel Corporation Lunar Lake-M Dynamic Tuning Technology [8086:641d] (rev 04)
     00:07.0 PCI bridge [0604]: Intel Corporation Lunar Lake-M Thunderbolt 4 PCI Express Root Port #0 [8086:a84e] (rev 10)
     00:07.2 PCI bridge [0604]: Intel Corporation Lunar Lake-M Thunderbolt 4 PCI Express Root Port #2 [8086:a860] (rev 10)
     00:0a.0 Signal processing controller [1180]: Intel Corporation Lunar Lake-M Crashlog and Telemetry [8086:647d] (rev 04)
     00:0b.0 Processing accelerators [1200]: Intel Corporation Lunar Lake NPU [8086:643e] (rev 04)
     00:0d.0 USB controller [0c03]: Intel Corporation Lunar Lake-M Thunderbolt 4 USB Controller [8086:a831] (rev 10)
     00:0d.2 USB controller [0c03]: Intel Corporation Lunar Lake-M Thunderbolt 4 NHI #0 [8086:a833] (rev 10)
     00:0d.3 USB controller [0c03]: Intel Corporation Lunar Lake-M Thunderbolt 4 NHI #1 [8086:a834] (rev 10)
     00:14.0 USB controller [0c03]: Intel Corporation Lunar Lake-M USB 3.2 Gen 2x1 xHCI Host Controller [8086:a87d] (rev 10)
     00:14.2 RAM memory [0500]: Intel Corporation Lunar Lake-M Shared SRAM [8086:a87f] (rev 10)
     00:14.3 Network controller [0280]: Intel Corporation BE201 320MHz [8086:a840] (rev 10)
     00:14.7 Bluetooth [0d11]: Intel Corporation Device [8086:a876] (rev 10)
     00:15.0 Serial bus controller [0c80]: Intel Corporation Lunar Lake-M Serial IO I2C Controller #0 [8086:a878] (rev 10)
     00:15.3 Serial bus controller [0c80]: Intel Corporation Lunar Lake-M Serial IO I2C Controller #3 [8086:a87b] (rev 10)
     00:16.0 Communication controller [0780]: Intel Corporation Lunar Lake-M CSME HECI #1 [8086:a870] (rev 10)
     00:1c.0 PCI bridge [0604]: Intel Corporation Lunar Lake-M PCI Express Root Port #1 [8086:a838] (rev 10)
     00:1c.4 PCI bridge [0604]: Intel Corporation Lunar Lake-M PCI Express Root Port #5 [8086:a83c] (rev 10)
     00:1f.0 ISA bridge [0601]: Intel Corporation Device [8086:a807] (rev 10)
     00:1f.3 Audio device [0403]: Intel Corporation Lunar Lake-M HD Audio Controller [8086:a828] (rev 10)
     00:1f.4 SMBus [0c05]: Intel Corporation Lunar Lake-M SMbus Controller [8086:a822] (rev 10)
     00:1f.5 Serial bus controller [0c80]: Intel Corporation Lunar Lake-M SPI Controller [8086:a823] (rev 10)
     04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD 9100 PRO [PM9E1] [144d:a810]
     20:00.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] [8086:0b26] (rev 03)
     21:00.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] [8086:0b26] (rev 03)
     21:01.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] [8086:0b26] (rev 03)
     21:02.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] [8086:0b26] (rev 03)
     21:03.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] [8086:0b26] (rev 03)
     21:04.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] [8086:0b26] (rev 03)

* USB devices (lsusb):
     Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
     Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
     Bus 002 Device 014: ID 8087:0b40 Intel Corp. USB3.0 Hub
     Bus 002 Device 015: ID 17ef:30b6 Lenovo USB3.1 Hub
     Bus 002 Device 016: ID 17ef:30b8 Lenovo USB3.1 Hub
     Bus 002 Device 017: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
     Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
     Bus 003 Device 003: ID 30c9:00f3 Luxvisions Innotech Limited Integrated Camera
     Bus 003 Device 004: ID 05e3:0610 Genesys Logic, Inc. Hub
     Bus 003 Device 007: ID 06cb:00f9 Synaptics, Inc.
     Bus 003 Device 023: ID 17ef:30ba Lenovo V1003
     Bus 003 Device 024: ID 17ef:30b4 Lenovo ThinkPad Thunderbolt 4 Dock MCU Controller2
     Bus 003 Device 025: ID 17ef:30b5 Lenovo 40B0
     Bus 003 Device 026: ID 0bda:2172 Realtek Semiconductor Corp. BillBoard Device
     Bus 003 Device 027: ID 17ef:30b7 Lenovo USB2.0 Hub
     Bus 003 Device 028: ID 17ef:30b9 Lenovo USB2.0 Hub
     Bus 003 Device 029: ID 046d:c548 Logitech, Inc. Logi Bolt Receiver
     Bus 003 Device 030: ID 3302:17c2 TTGK Technology USB-C Audio
     Bus 003 Device 032: ID 17ef:30bb Lenovo ThinkPad Thunderbolt 4 Dock USB Audio
     Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

* PCI Video Card (lspci |  grep -i -E 'vga' | cut -b1-7 | xargs -i lspci -vnnks {} | grep -v "<access denied>"):
     00:02.0 VGA compatible controller [0300]: Intel Corporation Lunar Lake [Intel Arc Graphics 130V / 140V] [8086:64a0] (rev 04) (prog-if 00 [VGA controller])
        Subsystem: Lenovo Device [17aa:50f2]
        Flags: bus master, fast devsel, latency 0, IRQ 189, IOMMU group 3
        Memory at 204e000000 (64-bit, prefetchable) [size=16M]
        Memory at 2000000000 (64-bit, prefetchable) [size=256M]
        Expansion ROM at 000c0000 [disabled] [size=128K]
        Capabilities: [40] Vendor Specific Information: Intel Capabilities v1
                CapA: Peg60Dis- Peg12Dis- Peg11Dis- Peg10Dis- PeLWUDis- DmiWidth=x4
                      EccDis- ForceEccEn- VTdDis- DmiG2Dis- PegG2Dis- DDRMaxSize=Unlimited
                      1NDis- CDDis- DDPCDis- X2APICEn- PDCDis- IGDis- CDID=0 CRID=0
                      DDROCCAP- OCEn- DDRWrtVrefEn+ DDR3LEn+
                CapB: ImguDis- OCbySSKUCap- OCbySSKUEn- SMTCap- CacheSzCap 0x0
                      SoftBinCap- DDR3MaxFreqWithRef100=Disabled PegG3Dis-
                      PkgTyp- AddGfxEn- AddGfxCap- PegX16Dis- DmiG3Dis- GmmDis-
                      DDR3MaxFreq=2932MHz LPDDR3En-
        Capabilities: [70] Express Root Complex Integrated Endpoint, IntMsgNum 0
        Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit+
        Capabilities: [d0] Power Management version 3
        Capabilities: [100] Null
        Capabilities: [110] Process Address Space ID (PASID)
        Capabilities: [200] Address Translation Service (ATS)
        Capabilities: [420] Physical Resizable BAR
        Capabilities: [400] Latency Tolerance Reporting
        Kernel driver in use: xe
        Kernel modules: xe


* GL Support (glxinfo -B | grep -E "OpenGL version|OpenGL renderer"):
     OpenGL renderer string: Mesa Intel(R) Graphics (LNL)
     OpenGL version string: 4.6 (Compatibility Profile) Mesa 25.3.6

* DRM Information (journalctl -k -b --no-hostname | grep -o 'kernel:.*drm.*$' | cut -d ' ' -f 2- ):
     ACPI: bus type drm_connector registered
     simple-framebuffer simple-framebuffer.0: [drm] Registered 1 planes with drm panic
     [drm] Initialized simpledrm 1.0.0 for simple-framebuffer.0 on minor 0
     simple-framebuffer simple-framebuffer.0: [drm] fb0: simpledrmdrmfb frame buffer device
     intel_vpu 0000:00:0b.0: [drm] Firmware: intel/vpu/vpu_40xx_v1.bin, version: Nov 13 2025*NPU40xx*ci_tag_ud202548_vpu_rc_20251112_1901-1-g72f907ffc78*72f907ffc780df5579a2fed65afc4944da8b0e44
     intel_vpu 0000:00:0b.0: [drm] Scheduler mode: HW
     [drm] Initialized intel_vpu 1.0.0 for 0000:00:0b.0 on minor 0
     xe 0000:00:02.0: [drm] Found lunarlake (device ID 64a0) integrated display version 20.00 stepping B0
     xe 0000:00:02.0: [drm] Finished loading DMC firmware i915/xe2lpd_dmc.bin (v2.29)
     xe 0000:00:02.0: [drm] Tile0: GT0: Using GuC firmware from xe/lnl_guc_70.bin version 70.58.0
     xe 0000:00:02.0: [drm] Tile0: GT0: ccs1 fused off
     xe 0000:00:02.0: [drm] Tile0: GT0: ccs2 fused off
     xe 0000:00:02.0: [drm] Tile0: GT0: ccs3 fused off
     xe 0000:00:02.0: [drm] Tile0: GT1: Using GuC firmware from xe/lnl_guc_70.bin version 70.58.0
     xe 0000:00:02.0: [drm] Tile0: GT1: Using HuC firmware from xe/lnl_huc.bin version 9.4.13
     xe 0000:00:02.0: [drm] Tile0: GT1: Using GSC firmware from xe/lnl_gsc_1.bin version 104.0.5.1429
     xe 0000:00:02.0: [drm] Tile0: GT1: vcs1 fused off
     xe 0000:00:02.0: [drm] Tile0: GT1: vcs2 fused off
     xe 0000:00:02.0: [drm] Tile0: GT1: vcs3 fused off
     xe 0000:00:02.0: [drm] Tile0: GT1: vcs4 fused off
     xe 0000:00:02.0: [drm] Tile0: GT1: vcs5 fused off
     xe 0000:00:02.0: [drm] Tile0: GT1: vcs6 fused off
     xe 0000:00:02.0: [drm] Tile0: GT1: vcs7 fused off
     xe 0000:00:02.0: [drm] Tile0: GT1: vecs1 fused off
     xe 0000:00:02.0: [drm] Tile0: GT1: vecs2 fused off
     xe 0000:00:02.0: [drm] Tile0: GT1: vecs3 fused off
     xe 0000:00:02.0: [drm] Registered 3 planes with drm panic
     [drm] Initialized xe 1.1.0 for 0000:00:02.0 on minor 0
     fbcon: xedrmfb (fb0) is primary device
     xe 0000:00:02.0: [drm] fb0: xedrmfb frame buffer device
     xe 0000:00:02.0: [drm] Tile0: GT1: found GSC cv104.1.0
     xe 0000:00:02.0: [drm] Selective fetch area calculation failed in pipe A
     xe 0000:00:02.0: [drm] Tile0: GT1: GuC load: excessive init time: 541ms! [status = 0x8002F034]
     xe 0000:00:02.0: [drm] Tile0: GT1: GuC load: excessive init time: [freq = 100MHz (req = 800MHz), before = 100MHz, perf_limit_reasons = 0x00000000]

* Xorg modules (grep LoadModule /var/log/Xorg.0.log ~/.local/share/xorg/Xorg.0.log | cut -d \" -f 2 | xargs):


* Xorg errors (without results: "grep '^\[.*(EE)' /var/log/Xorg.0.log ~/.local/share/xorg/Xorg.0.log | cut -d ':' -f 2- "):
     N/A

* PCI Audio devices (lspci |  grep -i -E 'audio' | cut -b1-7 | xargs -i lspci -vnnks {} | grep -v "<access denied>"):
     00:1f.3 Audio device [0403]: Intel Corporation Lunar Lake-M HD Audio Controller [8086:a828] (rev 10) (prog-if 80 [HDA compatible with vendor specific extensions])
        Subsystem: Lenovo Device [17aa:50f2]
        Flags: bus master, fast devsel, latency 64, IRQ 206, IOMMU group 15
        Memory at 204fc00000 (64-bit, non-prefetchable) [size=512K]
        Memory at 204f000000 (64-bit, non-prefetchable) [size=2M]
        Capabilities: [50] Power Management version 3
        Capabilities: [c0] Vendor Specific Information: Intel <unknown>
        Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Kernel driver in use: sof-audio-pci-intel-lnl
        Kernel modules: snd_sof_pci_intel_lnl, snd_hda_intel


* Audio devices (cat /proc/asound/cards):
      0 [sofhdadsp      ]: sof-hda-dsp - sof-hda-dsp
                           LENOVO-21QYS1EL00-ThinkPadT14sGen6
      1 [Audio          ]: USB-Audio - USB-C Audio
                           TTGK Technology USB-C Audio at usb-0000:00:14.0-2.4.4.2, full speed
      2 [USB            ]: USB-Audio - ThinkPad Thunderbolt 4 Dock USB
                           Lenovo ThinkPad Thunderbolt 4 Dock USB at usb-0000:00:14.0-2.4.4.4, full speed

* User audio services (systemctl --user --no-pager status wireplumber pipewire* | sed "s/$(hostname)/ahost/"):
     ○ wireplumber.service - Multimedia Service Session Manager
          Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
         Drop-In: /usr/lib/systemd/user/service.d
                  └─10-timeout-abort.conf
          Active: inactive (dead)

* PCI Network devices (lspci |  grep -i -E 'net' | cut -b1-7 | xargs -i lspci -vnnks {} | grep -v "<access denied>"):
     00:14.3 Network controller [0280]: Intel Corporation BE201 320MHz [8086:a840] (rev 10)
        Subsystem: Intel Corporation Device [8086:00e4]
        Flags: bus master, fast devsel, latency 0, IRQ 18, IOMMU group 9
        Memory at 204fd5c000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [c8] Power Management version 3
        Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [40] Express Root Complex Integrated Endpoint, IntMsgNum 0
        Capabilities: [80] MSI-X: Enable+ Count=32 Masked-
        Capabilities: [100] Latency Tolerance Reporting
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi