T14s - jhovold/linux GitHub Wiki

Lenovo ThinkPad T14s Gen6 (X1E)

This page aims to provide an overview of the current status of Linux support for the T14s laptop and Qualcomm Snapdragon X Elite laptops in general.

Work-in-progress branches

Important fixes and support for new features (once stable enough) can be found in my x1e80100 wip branches, for example:

https://github.com/jhovold/linux/tree/wip/x1e80100-6.15-rc3

These branches also include a minimal (but functional) johan_defconfig that serves as documentation for the configuration options that need to be enabled for the T14s.

Mainline feature support

Feature Status
Audio 6.14
Backlight wip branch
Battery 6.12
Bluetooth wip branch
Camera started
CPUfreq wip branch
Display (OLED) 6.12 (wip branch)
EFI variables 6.12
Fingerprint reader 6.14
GPU 6.12
HDMI -
Hibernation -
Keyboard 6.12
Keyboard special keys -
Modem wip branch
NVMe SSD 6.12
PCIe x4 6.12
Remoteproc 6.12
RTC wip branch
Suspend 6.12
Thermal sensors started
Touchpad (alternate) 6.12 (6.13)
Touchscreen (alternate) 6.12 (-)
TPM -
USB-A 6.14
USB-C 6.12
USB-C DisplayPort Alt Mode wip branch
USB-PD 6.12
Video acceleration started
Virtualisation -
Watchdog wip branch
Wi-Fi 6.12

Kernel command line

To boot Linux the following kernel parameters need to be provided:

clk_ignore_unused pd_ignore_unused efi=noruntime

due to a generic resource handover issue and a firmware bug, respectively.

Userspace dependencies

  • alsa-ucm-conf-1.2.14
  • linux-firmware-20250410
  • Mesa 24.2
  • ModemManager 1.20 + fcc-unlock symlink

Known issues

Most of these issues are shared with other Qualcomm Snapdragon based machines (e.g. other X Elite laptops and the X13s).

Audio

  • Active speaker protection not enabled, make sure to keep volume low
  • DisplayPort output not enabled
  • Headset not yet supported (fixed in wip branch)
  • Pipewire playback and capture issues (switch to Pulseaudio as workaround) (fixed in 6.15-rc1, 6.14.3, 6.13.12, 6.12.24)
  • Pops and clicks

Keyboard special keys

  • Support for some functions like mic mute is missing

Remoteproc

  • aDSP fails to register its services (e.g. sound, battery, USB-C orientation) (very infrequent)
  • Audio service fails to register with in-kernel pd-mapper (infrequent) (fixed in 6.14, 6.13.9, 6.12.21)
  • QRTR/MHI race can break boot with in-kernel pd-mapper (infrequent) (fixed in wip branch)

Suspend

  • Active audio streams blocks suspend
  • Crash on resume if disconnecting external display while suspended
  • Displays fail to resume (switch VT as workaround) (fixed in 6.14-rc1, 6.13.4, 6.12.16)
  • Not yet hitting deepest low-power state during suspend
  • USB disconnect triggers wakeup (disconnect before suspending as workaround)

Thermal

  • GPU thermal throttling not implemented (fixed in wip branch)
  • Skin temperature thermal throttling not implemented

UEFI firmware

  • Boot issues with 64 GB version (disable upper 32 GB as workaround)
    • cutmem 0x8800000000 0x8fffffffff
  • GRUB fails to start on 64 GB version (patch GRUB as workaround)
  • Firmware bugs can prevent GRUB and systemd-boot from starting kernel (start via F12 Boot Menu as workaround) (mitigated in wip branch)

USB

  • Display driver does not yet support 4-lane DisplayPort Alt Mode
  • Repeater PHY implementation breaks lockdep with false positive deadlock warning
  • USB-C coldplug orientation detection not working (flip cable as workaround) (fixed in wip branch)

Wi-Fi

  • Crash when switching AP
  • iwd fails to connect (can be worked around in /etc/iwd/main.conf)
     [General]
     ControlPortOverNL80211=false
    
  • Probe sometimes fails (of_irq_parse_pci: failed with rc=134) (infrequent)