Thread (9 messages) flat view 9 messages, 2 authors, 14d ago

Re: [BUG] HID: i2c-hid: ELAN 04F3:30FD touchpad reset race causes -EREMOTEIO on HP Pavilion Gaming 15-ec1xxx

From: Adam <hidden>
Date: 2026-09-06 16:13:46

One more finding, potentially significant: I found that holding/tapping
F9 at boot (HP's boot menu) repeatedly, or alternatively entering the
UEFI Firmware Settings from GRUB and immediately continuing boot, gives
the touchpad a reliable, working boot on my Ubuntu installation
(tested this handful of times, consistently works).

However, the exact same procedure on my Arch installation (same
hardware, same BIOS, back to back on the same day) does NOT make the
touchpad work - I tried this 2-5 times on Arch, no success. So
whatever this trick does (presumably giving the firmware/EC extra time
before OS handoff), it's not sufficient on its own on Arch, even
though it reliably helps on Ubuntu.

I don't have a clean explanation, but this seems like a meaningful
data point: it suggests there may be something about how Arch's boot
path (systemd-boot, initramfs/mkinitcpio, or something else early in
userspace) interacts with this differently than Ubuntu's (GRUB +
initramfs-tools), on top of whatever the F9/firmware-settings trick is
doing at the hardware level. I'm not sure how to narrow this down
further myself - let me know if there's a specific comparison (e.g.
timing between firmware handoff and first i2c probe attempt, or
something in ACPI _PS0/_PS3 execution) that would help pin this down.

Thanks,
Adam


On Thu, Aug 27, 2026 at 11:44 PM Adam [off-list ref] wrote:
Thanks for the detailed hypothesis - here are the results.

I did 5 warm boots (reboot) and 5 cold boots (shutdown, wait, then
power on), with dyndbg still enabled, and physically tried moving the
touchpad after each one. Subjectively, the touchpad did NOT respond to
touch in any of the 10 boots - I never saw the cursor move.

However, when I went through the logs afterward, I noticed something
odd: in one of the 5 warm boots (boot #4) and one of the 5 cold boots
(boot #4), the log shows the device transitioning from repeated
-121 errors into a long stream of "input: ..." lines with what look
like changing/plausible HID report data - 1353 such lines over about
28 seconds in the warm case, 441 lines in the cold case (that one
kept going intermittently, mixed with more -121 "failed to set a
report" errors, for several minutes based on the timestamps - I let
it sit rather than immediately rebooting).

So the kernel-level input events appear to have been getting
generated in those two runs, but I did not perceive any cursor
movement, and I don't have an explanation for that discrepancy - I
was actively trying to move the touchpad during that window in both
cases. I don't know if this is meaningful (e.g. some kind of
noise/garbage data that happens to look like report data) or if
there's a userspace/libinput layer issue on top of a technically
"working" kernel driver. Attaching both full logs
(warm-boots.txt, cold-boots.txt) in case the raw data is useful -
each file has all 5 boots separated by a blank line.

Overall: no clear cold-vs-warm pattern from this sample (1/5 success
in each category, by the log's definition of "success" - not by my
subjective experience of the touchpad working).

I also ran your unbind/bind commands on the platform driver during a
dead state:

echo AMDI0010:03 | sudo tee /sys/bus/platform/drivers/i2c_designware/unbind
echo AMDI0010:03 | sudo tee /sys/bus/platform/drivers/i2c_designware/bind

This did trigger a fresh probe (dmesg shows "HID probe called for i2c
0x15" right after, and the HID descriptor was fetched successfully
this time), but the reset/power-setting sequence right after still
failed the same way:

  i2c_hid_xfer: cmd=05 00 00 01
  failed to reset device: -121
  i2c_hid_set_power
  i2c_hid_xfer: cmd=05 00 01 08
  [repeats a couple more times, same errors]

So as you suspected, it did not recover functionality - the platform
driver rebind gets further than a cold boot sometimes does (descriptor
fetched right away) but still fails at the reset/power stage. I also
physically tried moving the touchpad afterward - still completely
unresponsive.

Let me know if a larger sample size (more boots) or anything else
would help narrow down the input-events-without-perceived-movement
discrepancy.

Thanks,
Adam
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help