Public bug reported:

Expected behavior:
The touchpad should be detected and functional after booting Ubuntu 26.04 with 
kernel 7.0.0-38-generic.

Actual behavior:
The touchpad does not appear in xinput list or libinput list-devices. The 
kernel log shows repeated failures to fetch the HID descriptor:
i2c_hid_acpi i2c-ELAN062F:00: failed to fetch HID descriptor: -121
i2c_hid_acpi i2c-ELAN062F:00: Failed to fetch the HID Descriptor

Hardware:

    Model: Lenovo ThinkBook 15-IML

    Touchpad: ELAN062F (ACPI ID confirmed via DSDT analysis)

    I2C Controller: Intel LPSS at PCI address 0000:00:15.0

    Touchpad hardware responds at I2C address 0x2C (verified with i2cget
-y 0 0x2c, returns 0x06)

Steps to reproduce:

    Boot Ubuntu 26.04 with kernel 7.0.0-38-generic on the affected
hardware.

    Run xinput list — the touchpad does not appear.

    Run sudo dmesg | grep i2c_hid — shows failed to fetch HID
descriptor: -121.

Workarounds attempted (all unsuccessful):

    DSDT override via CPIO:

        Forced _STA of TPD2 (ELAN062F) to return 0x0F unconditionally.

        Corrected _CRS/SBFE I2C address from 0x0015 to 0x002C.

        Forced _STA = Zero on TPD0, TPD1, TPD4 to avoid address
conflicts.

        Result: The ACPI override is confirmed active (ACPI: Table
Upgrade: override [DSDT-LENOVO-CFL]), but i2c_hid_acpi still fails with
-121 when attempting to fetch the HID descriptor.

    PCI reset: Removed and rescanned 0000:00:15.0 (echo 1 >
/sys/bus/pci/devices/0000:00:15.0/remove followed by rescan). The
controller re-enumerates, but the -121 error persists.

    Module reload: Unloaded and reloaded i2c_hid_acpi with various
delays (up to 5 seconds) after PCI reset. No change.

    Forced bind with elan_i2c: Returns -ENXIO (os error 6) because the
driver's initial byte-read check fails.

    Forced bind with elants_i2c: Returns -ENODEV (os error 19) because
ELAN062F is not in that driver's device ID table (confirmed via
modinfo).

Historical context:
This exact model (ThinkBook 15-IML) was fixed in 2020 by a Canonical kernel 
test build from Kai-Heng Feng (kernel 5.9.0-rc4+) that applied the patch 
21653a4181ff (i2c: core: Call i2c_acpi_install_space_handler before 
i2c_acpi_register_devices). That patch was merged into mainline and reached 
Ubuntu in version 5.8.0-20.21. The touchpad worked fully on that kernel. The 
issue appears to have regressed or mutated in the current 7.0 kernel series.

Relevant upstream context:
A similar "lost arbitration" regression was reported on the Linux kernel 
mailing list for the ThinkPad T14s Gen 4 (AMD), where i2c-designware probe 
delays shifted the first HID descriptor fetch into a window where the 
platform's embedded controller (EC) was still acting as a secondary I2C bus 
master . This matches the -121 (EREMOTEIO) symptom observed here. The Lenovo 
ThinkBook 15-IML may be affected by the same EC arbitration interaction.

System information:

    Ubuntu version: 26.04

    Kernel: 7.0.0-38-generic (problem also likely present in
7.0.0-31-generic, not tested)

    Secure Boot: Disabled

    pinctrl modules: CONFIG_PINCTRL_INTEL_PLATFORM=m,
CONFIG_PINCTRL_ICELAKE=m

Request:
Please investigate whether the i2c-designware / i2c_hid_acpi timing regression 
affecting Lenovo platforms in kernel 7.0 is also impacting the ThinkBook 15-IML 
(ELAN062F), and whether the EC arbitration workaround being discussed upstream 
can be applied to this model.

** Affects: linux-signed-hwe-7.0 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2171571

Title:
  Touchpad ELAN062F not detected on Lenovo ThinkBook 15-IML:
  i2c_hid_acpi fails with -121 (EREMOTEIO)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-signed-hwe-7.0/+bug/2171571/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to