Public bug reported:
Hardware: HP Pavilion Gaming Laptop 15-ec0xxx / 86D6, BIOS F.19 (latest
available), AMD Ryzen 7 3750H.
Touchpad: ELAN0718:01 (04F3:30FD), I2C address 0x15, on AMDI0010:01 / i2c-0.
Kernel: 7.0.0-30-generic and 7.0.0-14-generic (identical behaviour), Ubuntu
26.04.
Symptom: i2c_hid_acpi probe fails intermittently with -121. Failure
point varies between boots:
i2c_hid_acpi i2c-ELAN0718:01: failed to reset device: -121
i2c_hid_acpi i2c-ELAN0718:01: failed to fetch HID descriptor: -121
i2c_hid_acpi i2c-ELAN0718:01: can't add hid device: -121
When probe does succeed, the device registers correctly with hid-
multitouch, but runtime traffic keeps failing:
i2c_hid_acpi i2c-ELAN0718:01: failed to set a report to device: -121
hid-multitouch 0018:04F3:30FD.0003: failed to fetch feature 13
The pointer is then unusably laggy — input reports are evidently being
dropped.
Key observation — reload retries work. Reloading the driver in a loop,
the device recovers after 3–5 attempts. On boots where dmesg shows
device did not ack reset within 1000 ms (driver tolerating the failed
reset and continuing) initialisation succeeds; on boots where it bails
out at the descriptor read it does not. This suggests the device needs a
retry/tolerance quirk rather than different bus parameters.
Manual I2C access works, but only intermittently:
$ sudo i2cdetect -y -r 0 → 0x15 present, always
$ sudo i2ctransfer -y 0 w2@0x15 0x01 0x00 r16
0x1e 0x00 0x00 0x01 0x7d 0x01 0x02 0x00 0x03 0x00 0x0e 0x00 0x04 0x00 0x00 0x00
0x1e = 30 = correct HID descriptor length; data is valid. But repeating
the same r30 read 5× gives OK, FAIL, OK, OK, FAIL. Success rate is
roughly 30–60% and does not correlate with inter-transaction delay (3/10
at 1 ms, 5/10 at 10 ms, 3/10 at 50 ms, 6/10 at 100 ms) or with read
length (no stable threshold).
Controller reports abort on address, not on data:
i2c_designware AMDI0010:01: enabled=0x1 stat=0x750
i2c_designware AMDI0010:01: i2c_dw_handle_tx_abort: slave address not
acknowledged (7bit mode)
Simple transactions (stat=0x710, stat=0x514) succeed at 400 kHz; the
abort occurs on msgs: 2.
DSDT:
Device (TPD0) {
Name (_HID, "ELAN0718")
Name (_CID, "PNP0C50")
I2cSerialBusV2 (0x0015, ControllerInitiated, 0x00061A80 /* 400kHz */,
AddressingMode7Bit, "\\_SB.I2CD", 0x00, ResourceConsumer, , Exclusive,)
GpioInt (Edge, ActiveLow, Exclusive, PullNone, 0x0000,
"\\_SB.GPIO", 0x00, ResourceConsumer, ,) { 0x0006 }
Method (_INI, 0, NotSerialized) { } // empty
}
No _PS0/_PS3/_PR0/_PR3/_RST on the device. Firmware also exposes the
same touchpad as a PS/2 device (_HID returning "*ELAN0718", _CID
PNP0F13, IRQ 12); psmouse binds it and reports elantech hw version 4, fw
0x4d1f01, but evtest on that node yields zero events under any
conditions.
Runtime PM note: AMDI0010:01 defaults to runtime_status: suspended.
Setting power/control=on makes probe succeed more often, but does not
fix runtime -121.
The device works correctly under Windows, and worked flawlessly for
exactly one Linux session — the one immediately following a BIOS flash.
It has not been reproducible since, including after full power-drain
resets (poweroff, AC removed, 30 s power button hold).
Ruled out: kernel regression (identical on 7.0.0-14 and 7.0.0-30);
distro/installation (fails on Lubuntu 26.04, Ubuntu 26.04, and live
USB); old firmware (BIOS updated F.13 → F.19, no change); psmouse
conflict (tested with psmouse unloaded); BIOS defaults;
i8042.reset/nomux/nopnp/noloop; psmouse.proto=bare/imps/exps. Note
i2c_hid.polling_mode no longer exists in this kernel.
Questions: would a retry quirk on -121 in the descriptor-fetch path be
appropriate here, given the device demonstrably recovers on retry? Is
i2c_acpi_force_100khz_device_ids relevant despite the abort being on
address rather than data?
ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: linux-image-7.0.0-30-generic 7.0.0-30.30
ProcVersionSignature: Ubuntu 7.0.0-30.30-generic 7.0.12
Uname: Linux 7.0.0-30-generic x86_64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: amd64
AudioDevicesInUse:
USER PID ACCESS COMMAND
/dev/snd/controlC1: mativ9 3164 F.... wireplumber
/dev/snd/controlC0: mativ9 3164 F.... wireplumber
/dev/snd/seq: mativ9 3144 F.... pipewire
CasperMD5CheckResult: pass
CurrentDesktop: ubuntu:GNOME
Date: Mon Aug 31 14:35:27 2026
InstallationDate: Installed on 2026-08-31 (0 days ago)
InstallationMedia: Ubuntu 26.04.1 LTS "Resolute Raccoon" - Release amd64
(20260826)
MachineType: HP HP Pavilion Gaming Laptop 15-ec0xxx
ProcEnviron:
LANG=pl_PL.UTF-8
PATH=(custom, no user)
SHELL=/bin/bash
TERM=xterm-256color
XDG_RUNTIME_DIR=<set>
ProcFB: 0 amdgpudrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-7.0.0-30-generic
root=UUID=f817e223-ad3d-49ce-afdf-1c3c59c0801d ro quiet splash
crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 12/05/2023
dmi.bios.release: 15.19
dmi.bios.vendor: AMI
dmi.bios.version: F.19
dmi.board.asset.tag: Base Board Asset Tag
dmi.board.name: 86D6
dmi.board.vendor: HP
dmi.board.version: 96.45
dmi.chassis.type: 10
dmi.chassis.vendor: HP
dmi.chassis.version: Chassis Version
dmi.ec.firmware.release: 96.45
dmi.modalias:
dmi:bvnAMI:bvrF.19:bd12/05/2023:br15.19:efr96.45:svnHP:pnHPPavilionGamingLaptop15-ec0xxx:pvr:rvnHP:rn86D6:rvr96.45:cvnHP:ct10:cvrChassisVersion:sku9RM09EA#AKD:pfa103C_5335KVHPPavilion:
dmi.product.family: 103C_5335KV HP Pavilion
dmi.product.name: HP Pavilion Gaming Laptop 15-ec0xxx
dmi.product.sku: 9RM09EA#AKD
dmi.sys.vendor: HP
** Affects: linux (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug resolute wayland-session
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2165909
Title:
ELAN0718 I2C-HID touchpad: intermittent EREMOTEIO (-121) on HP
Pavilion Gaming 15-ec0xxx
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2165909/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs