Public bug reported:
Hardware: Lenovo 14w Gen 2 (or exact model), AMD processor.
Kernel: 6.17.x (Ubuntu)
Description of the problem:
The Elan I2C touchpad fails to initialize on Linux. The dmesg log shows a
genirq: Flags mismatch irq 0 error, and the elan_i2c probe fails with error
-16. The touchpad is completely dead.
Root Cause (ACPI DSDT Bug):
I extracted and decompiled the DSDT table. In the _SB.I2CD.TPD0 device, the
_CRS method relies on the Embedded Controller (TPTY variable) to determine
whether to return the I2C resource template for address 0x0015 or 0x002C.
However, there is no default Else fallback statement. During Linux boot,
if the EC is not ready or the condition evaluates to 0, the _CRS method
returns absolutely nothing. Consequently, the OS assigns IRQ 0, causing
the probe to fail.
The Fix / Workaround:
I manually patched the DSDT table to bypass the EC check and unconditionally
return the SBFB and SBFG templates (I2C address 0x0015 and GpioInt 0x0009).
After recompiling the AML and injecting it via GRUB early_initrd, the touchpad
works perfectly.
Please issue a BIOS update to include a default Return statement in the
_CRS method of the touchpad device, or implement a kernel ACPI quirk for
this specific DSDT to prevent the IRQ 0 fallback.
ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: linux-image-6.17.0-19-generic 6.17.0-19.19~24.04.2
ProcVersionSignature: Ubuntu 6.17.0-19.19~24.04.2-generic 6.17.13
Uname: Linux 6.17.0-19-generic x86_64
ApportVersion: 2.28.1-0ubuntu3.8
Architecture: amd64
CasperMD5CheckResult: pass
CurrentDesktop: ubuntu:GNOME
Date: Tue Mar 17 23:09:53 2026
InstallationDate: Installed on 2026-03-16 (1 days ago)
InstallationMedia: Ubuntu 24.04.4 LTS "Noble Numbat" - Release amd64 (20260210)
ProcEnviron:
LANG=fr_FR.UTF-8
PATH=(custom, no user)
SHELL=/bin/bash
TERM=xterm-256color
XDG_RUNTIME_DIR=<set>
SourcePackage: linux-signed-hwe-6.17
UpgradeStatus: No upgrade log present (probably fresh install)
** Affects: linux-signed-hwe-6.17 (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug noble wayland-session
** Patch added: "Patched DSDT for Lenovo 14w Gen 2 - Fixed missing Return in
TPD0 _CRS method."
https://bugs.launchpad.net/bugs/2144699/+attachment/5953495/+files/dsdt.dsl
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2144699
Title:
[BIOS Bug] ELAN I2C Touchpad fails to probe (IRQ 0 mismatch) due to
missing default return in_CRS method
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-signed-hwe-6.17/+bug/2144699/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs