Dual 4K monitors with Lenovo Thunderbolt 4 Dock and Fedora 37

Hi all,

I struggle to setup 60 Hz refresh rate with my dual 4K monitor setup with Fedora 37 (tested both Wayland and Xorg, no difference). Both monitors work when set to 29.9 Hz refresh rate. Also, if I connect just one monitor, I can get 60 Hz refresh rate, too. Changed cables, no difference.

Also, when testing, I found a couple of weird issues. If I configure monitors (in gnome setup gui) to run at 29.9 Hz, and switch them to 60 Hz latter on, they seem to work (at least the gui confirms they do run in 60Hz, and xrandr confirms that). However, if I check information available in monitor itself (it can report about it’s status), I can clearly see the refresh rate stays at 29.9. Also, if I boot Windows 11 on the same laptop (I have a dualboot setup), everything works and monitors do run at 60 Hz (confirmed both in monitor and in Windows). And it should, I have double checked with Lenovo display and resolution matrix for the laptop and the dock. The dock is Thunderbolt 4 (40B0). Both monitors are Eizo FlexScan 4K.

Output of inxi -CMGxxS --edid

System:
  Host: x1cg10 Kernel: 6.2.8-200.fc37.x86_64 arch: x86_64 bits: 64
    compiler: gcc v: 2.38-25.fc37
    parameters: BOOT_IMAGE=(hd0,gpt4)/vmlinuz-6.2.8-200.fc37.x86_64
    root=UUID=21c0f8bd-c529-418d-a076-db0b3f15c3b1 ro
    resume=UUID=3be0a800-d877-43e9-9b8a-4f1f0a26a160
    rd.luks.uuid=luks-9d7333f7-28b9-49d4-9780-d8cff8349146 rhgb quiet
  Desktop: GNOME v: 43.4 tk: GTK v: 3.24.37 wm: gnome-shell dm: GDM v: 43.0
    Distro: Fedora release 37 (Thirty Seven)
Machine:
  Type: Laptop System: LENOVO product: 21CB007WCK v: ThinkPad X1 Carbon Gen 10
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: LENOVO model: 21CB007WCK v: SDK0T76530 WIN
    serial: <superuser required> UEFI: LENOVO v: N3AET72W (1.37 )
    date: 03/02/2023
CPU:
  Info: model: 12th Gen Intel Core i7-1260P bits: 64 type: MST AMCP
    arch: Alder Lake level: v3 note: check built: 2021+
    process: Intel 7 (10nm ESF) family: 6 model-id: 0x9A (154) stepping: 3
    microcode: 0x429
  Topology: cpus: 1x cores: 12 mt: 4 tpc: 2 st: 8 threads: 16 smt: enabled
    cache: L1: 1.1 MiB desc: d-8x32 KiB, 4x48 KiB; i-4x32 KiB, 8x64 KiB
    L2: 9 MiB desc: 4x1.2 MiB, 2x2 MiB L3: 18 MiB desc: 1x18 MiB
  Speed (MHz): avg: 1775 high: 2500 min/max: 400/4700:3400 scaling:
    driver: intel_pstate governor: powersave cores: 1: 2500 2: 2500 3: 574
    4: 2500 5: 664 6: 2500 7: 586 8: 2500 9: 2500 10: 400 11: 646 12: 538
    13: 2500 14: 2500 15: 2500 16: 2500 bogomips: 79872
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Enhanced IBRS, IBPB: conditional, RSB
    filling, PBRSB-eIBRS: SW sequence
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel Alder Lake-P Integrated Graphics vendor: Lenovo driver: i915
    v: kernel arch: Gen-12.2 process: Intel 10nm built: 2021-22+ ports:
    active: DP-7,DP-8,eDP-1 empty: DP-1, DP-2, DP-3, DP-4, DP-5, DP-6, DP-9,
    HDMI-A-1 bus-ID: 00:02.0 chip-ID: 8086:46a6 class-ID: 0300
  Device-2: Elgato Systems GmbH Cam Link 4K type: USB
    driver: hid-generic,snd-usb-audio,usbhid,uvcvideo bus-ID: 2-3.4.4.2:6
    chip-ID: 0fd9:0066 class-ID: 0102 serial: 0005D00980000
  Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 22.1.9
    compositor: gnome-shell driver: X: loaded: modesetting unloaded: fbdev,vesa
    dri: iris gpu: i915 d-rect: 9600x3360 display-ID: 0
  Monitor-1: DP-7 pos: primary,top-left res: 3840x2160 size: N/A modes: N/A
  Monitor-2: DP-8 pos: top-right res: 3840x2160 size: N/A modes: N/A
  Monitor-3: eDP-1 pos: bottom-c res: 1920x1200 size: N/A modes: N/A
  API: OpenGL v: 4.6 Mesa 22.3.7 renderer: Mesa Intel Graphics (ADL GT2)
    direct-render: Yes

Monitor 1:

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.4
  Vendor & Product Identification:
    Manufacturer: ENC
    Model: 9622
    Serial Number: 48885047
    Made in: week 17 of 2017
  Basic Display Parameters & Features:
    Digital display
    Bits per primary color channel: 8
    DisplayPort interface
    Maximum image size: 70 cm x 40 cm
    Gamma: 2.20
    DPMS levels: Standby Suspend Off
    Supported color formats: RGB 4:4:4, YCrCb 4:4:4, YCrCb 4:2:2
    First detailed timing includes the native pixel format and preferred refresh rate
  Color Characteristics:
    Red  : 0.6425, 0.3457
    Green: 0.2812, 0.6396
    Blue : 0.1406, 0.0507
    White: 0.3134, 0.3291
  Established Timings I & II:
    IBM     :   720x400    70.081663 Hz   9:5     31.467 kHz     28.320000 MHz
    DMT 0x04:   640x480    59.940476 Hz   4:3     31.469 kHz     25.175000 MHz
    DMT 0x09:   800x600    60.316541 Hz   4:3     37.879 kHz     40.000000 MHz
    DMT 0x10:  1024x768    60.003840 Hz   4:3     48.363 kHz     65.000000 MHz
  Standard Timings:
    DMT 0x23:  1280x1024   60.019740 Hz   5:4     63.981 kHz    108.000000 MHz
    DMT 0x33:  1600x1200   60.000000 Hz   4:3     75.000 kHz    162.000000 MHz
    DMT 0x45:  1920x1200   59.884600 Hz  16:10    74.556 kHz    193.250000 MHz
    DMT 0x3a:  1680x1050   59.954250 Hz  16:10    65.290 kHz    146.250000 MHz
    DMT 0x1c:  1280x800    59.810326 Hz  16:10    49.702 kHz     83.500000 MHz
    DMT 0x53:  1600x900    60.000000 Hz  16:9     60.000 kHz    108.000000 MHz (RB)
    DMT 0x55:  1280x720    60.000000 Hz  16:9     45.000 kHz     74.250000 MHz
  Detailed Timing Descriptors:
    DTD 1:  3840x2160   59.995989 Hz  16:9    133.311 kHz    519.380000 MHz (697 mm x 392 mm)
                 Hfront   24 Hsync  16 Hback   16 Hpol P
                 Vfront    3 Vsync   5 Vback   54 Vpol N
    DTD 2:  1920x1080   60.000000 Hz  16:9     67.500 kHz    148.500000 MHz (697 mm x 392 mm)
                 Hfront   88 Hsync  44 Hback  148 Hpol P
                 Vfront    4 Vsync   5 Vback   36 Vpol P
    Display Range Limits:
      Monitor ranges (GTF): 29-61 Hz V, 31-134 kHz H, max dotclock 540 MHz
    Display Product Name: 'EV3237'
  Extension blocks: 1
Checksum: 0xcb

----------------

Block 1, CTA-861 Extension Block:
  Revision: 3
  Underscans IT Video Formats by default
  Basic audio support
  Supports YCbCr 4:4:4
  Supports YCbCr 4:2:2
  Native detailed modes: 0
  Video Data Block:
    VIC  16:  1920x1080   60.000000 Hz  16:9     67.500 kHz    148.500000 MHz
    VIC  34:  1920x1080   30.000000 Hz  16:9     33.750 kHz     74.250000 MHz
    VIC   4:  1280x720    60.000000 Hz  16:9     45.000 kHz     74.250000 MHz
    VIC   3:   720x480    59.940060 Hz  16:9     31.469 kHz     27.000000 MHz
    VIC   2:   720x480    59.940060 Hz   4:3     31.469 kHz     27.000000 MHz
    VIC   1:   640x480    59.940476 Hz   4:3     31.469 kHz     25.175000 MHz
  Audio Data Block:
    Linear PCM:
      Max channels: 1
      Supported sample rates (kHz): 96 88.2 48 44.1 32
      Supported sample sizes (bits): 24 20 16
  Speaker Allocation Data Block:
    FL/FR - Front Left/Right
  Detailed Timing Descriptors:
    DTD 3:  3840x2160   29.980602 Hz  16:9     65.688 kHz    262.750000 MHz (697 mm x 392 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync   5 Vback   23 Vpol N
    DTD 4:  1920x2160   59.987970 Hz   8:9    133.293 kHz    277.250000 MHz (697 mm x 392 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync  10 Vback   49 Vpol N
    DTD 5:  3840x1080   59.968497 Hz  32:9     66.625 kHz    266.500000 MHz (697 mm x 392 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync  10 Vback   18 Vpol N
    DTD 6:  2560x1440   59.950550 Hz  16:9     88.787 kHz    241.500000 MHz (697 mm x 392 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync   5 Vback   33 Vpol N
    DTD 7:  2560x1600   59.971589 Hz   8:5     98.713 kHz    268.500000 MHz (697 mm x 392 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync  10 Vback   33 Vpol N
Checksum: 0x60  Unused space in Extension Block: 18 bytes

Monitor 2:

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.4
  Vendor & Product Identification:
    Manufacturer: ENC
    Model: 10609
    Serial Number: 44705080
    Made in: week 32 of 2020
  Basic Display Parameters & Features:
    Digital display
    Bits per primary color channel: 8
    DisplayPort interface
    Maximum image size: 70 cm x 40 cm
    Gamma: 2.20
    DPMS levels: Standby Suspend Off
    Supported color formats: RGB 4:4:4, YCrCb 4:4:4, YCrCb 4:2:2
    First detailed timing includes the native pixel format and preferred refresh rate
  Color Characteristics:
    Red  : 0.6494, 0.3378
    Green: 0.3105, 0.6328
    Blue : 0.1494, 0.0576
    White: 0.3134, 0.3291
  Established Timings I & II:
    IBM     :   720x400    70.081663 Hz   9:5     31.467 kHz     28.320000 MHz
    DMT 0x04:   640x480    59.940476 Hz   4:3     31.469 kHz     25.175000 MHz
    DMT 0x09:   800x600    60.316541 Hz   4:3     37.879 kHz     40.000000 MHz
    DMT 0x10:  1024x768    60.003840 Hz   4:3     48.363 kHz     65.000000 MHz
  Standard Timings:
    DMT 0x23:  1280x1024   60.019740 Hz   5:4     63.981 kHz    108.000000 MHz
    DMT 0x33:  1600x1200   60.000000 Hz   4:3     75.000 kHz    162.000000 MHz
    DMT 0x45:  1920x1200   59.884600 Hz  16:10    74.556 kHz    193.250000 MHz
    DMT 0x3a:  1680x1050   59.954250 Hz  16:10    65.290 kHz    146.250000 MHz
    DMT 0x1c:  1280x800    59.810326 Hz  16:10    49.702 kHz     83.500000 MHz
    DMT 0x53:  1600x900    60.000000 Hz  16:9     60.000 kHz    108.000000 MHz (RB)
    DMT 0x55:  1280x720    60.000000 Hz  16:9     45.000 kHz     74.250000 MHz
  Detailed Timing Descriptors:
    DTD 1:  3840x2160   59.996625 Hz  16:9    133.312 kHz    533.250000 MHz (698 mm x 393 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync   5 Vback   54 Vpol N
    DTD 2:  1920x1080   60.000000 Hz  16:9     67.500 kHz    148.500000 MHz (698 mm x 393 mm)
                 Hfront   88 Hsync  44 Hback  148 Hpol P
                 Vfront    4 Vsync   5 Vback   36 Vpol P
    Display Range Limits:
      Monitor ranges (GTF): 29-61 Hz V, 31-134 kHz H, max dotclock 540 MHz
    Display Product Name: 'EV3285'
  Extension blocks: 1
Checksum: 0x9a

----------------

Block 1, CTA-861 Extension Block:
  Revision: 3
  Underscans IT Video Formats by default
  Basic audio support
  Supports YCbCr 4:4:4
  Supports YCbCr 4:2:2
  Native detailed modes: 1
  Video Data Block:
    VIC  16:  1920x1080   60.000000 Hz  16:9     67.500 kHz    148.500000 MHz
    VIC  34:  1920x1080   30.000000 Hz  16:9     33.750 kHz     74.250000 MHz
    VIC   4:  1280x720    60.000000 Hz  16:9     45.000 kHz     74.250000 MHz
    VIC   3:   720x480    59.940060 Hz  16:9     31.469 kHz     27.000000 MHz
    VIC   2:   720x480    59.940060 Hz   4:3     31.469 kHz     27.000000 MHz
    VIC   1:   640x480    59.940476 Hz   4:3     31.469 kHz     25.175000 MHz
  Audio Data Block:
    Linear PCM:
      Max channels: 2
      Supported sample rates (kHz): 192 176.4 96 88.2 48 44.1 32
      Supported sample sizes (bits): 24 20 16
  Speaker Allocation Data Block:
    FL/FR - Front Left/Right
  Detailed Timing Descriptors:
    DTD 3:  3840x2160   29.980602 Hz  16:9     65.688 kHz    262.750000 MHz (698 mm x 393 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync   5 Vback   23 Vpol N
    DTD 4:  2560x1440   59.950550 Hz  16:9     88.787 kHz    241.500000 MHz (698 mm x 393 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync   5 Vback   33 Vpol N
Checksum: 0x84  Unused space in Extension Block: 72 bytes

Thank you

Also, I should add, when I want to wake screens up, after they all go blank (because of power settings), I have to switch to console (Ctrl-Alt F3) and back first to make displays (including the laptop display) to wake up. However, both 4K displays will wake-up into 1920x1200 resolution, which is my primary display (laptop display) resolution. I have to switch the refresh rate back to 29.9 to get them back to their native resolution (3840x2160).

There are a lot of GPUs that are capable of 4K resolution, but some will only support that resolution at 30Hz refresh. Yours seems capable of 4K @ 60Hz but only for one monitor. The second monitor apparently forces it down to 30Hz for the 4K display
I see that you are using the IGP on that machine (Thinkpad X1) and I expect the issue is the capabilities of the GPU and not directly related to fedora at all.

Thank you Jeff. However, why do you think there is no such issue when I boot Windows on the same machine, with the same setup?

Part of the GPU function is the driver. That is an intel GPU so it seems probably not an issue for one monitor. However you have added in the docking station and split the signal to two monitors. The refresh rate is part of the entire signal and with that resolution split between 2 monitors it still could be related to the GPU (& driver) combination.

If it works at 60Hz with windows but not with fedora then maybe a bug should be filed. Seems like it would be related to driver or gnome. Linux drivers are different than windows drivers though both are provided by intel.