Page MenuHomeSolus

Touchpad not working in kernel 5.4
Closed, ResolvedPublic

Description

Hello.
Kernel 5.4 introduces a bug that makes some touchpads unresposive.
The common symptoms are messages like

[    8.901487] i2c_hid i2c-ELAN1010:00: failed to reset device.
[...]
[   15.045591] i2c_hid i2c-ELAN1010:00: failed to reset device.
[...]
[   21.189509] i2c_hid i2c-ELAN1010:00: failed to reset device.
[   27.333503] i2c_hid i2c-ELAN1010:00: failed to reset device.
[   28.357560] i2c_hid i2c-ELAN1010:00: can't add hid device: -61
[   28.357945] i2c_hid: probe of i2c-ELAN1010:00 failed with error -61

in dmesg.

The bug was identified as https://bugzilla.kernel.org/show_bug.cgi?id=205745 which provided a working patch (https://patchwork.ozlabs.org/patch/1216997/).
The patch was merged in the Arch kernel since 5.4.8 and appears to fix the problem.

Event Timeline

elusian created this task.Jan 18 2020, 10:24 AM
JoshStrobl triaged this task as Normal priority.
JoshStrobl moved this task from Backlog to Input on the Hardware board.
JoshStrobl added a subscriber: JoshStrobl.

Thanks for the bug report, I'll make sure we get this patch merged into linux-current, didn't see it in the changelog for 5.4.13 so probably not in that yet. Should be in next week's sync.

JoshStrobl changed the task status from Open to In Progress.Jan 20 2020, 2:27 PM
JoshStrobl closed this task as Invalid.Jan 20 2020, 2:37 PM

So I double checked in the pinctrl drivers, the patch referenced is already in 5.4.12 per https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/pinctrl/intel/pinctrl-sunrisepoint.c?h=v5.4.12&id=f702e0b93cdb7785d94d6a508e5b1dac99fd9bff, so your issue is not related to a missing offset.

I'd suggest reporting your issue on the kernel bug tracker, which is https://bugzilla.kernel.org so they can investigate.

Please correct me if I'm wrong, but despite looking similar, the two patches are not the same.
I think the patch you sent adds

.is_offset = SPT_GPI_IS,

inside SPT_COMMUNITY, while the patch I linked adds it to SPTH_COMMUNITY
(you can recognize it by the line

.pin_base = (s),

below).
This patch was not applied, you can check in the source currently used to build linux-current, where there is no SPT_GPI_IS inside SPTH_COMMUNITY.
If I'm wrong I will submit the bug to the kernel bug tracker.

JoshStrobl reopened this task as Open.Jan 20 2020, 3:02 PM

Ah, you're right. Clearly I need more coffee.

JoshStrobl changed the task status from Open to In Progress.Jan 20 2020, 3:07 PM

Cooking linux-current now. In the meantime, do you mind providing the output of: eopkg li | grep 'current' so I know what drivers to prioritize for rebuilds (if any) and provide you links for installation when they're done building and indexing on unstable? Thanks!

Thanks for the work you are putting.
I have nothing fancy installed, just

linux-current                               - Linux kernel image and modules (current)
nvidia-glx-driver-current                   - NVIDIA Binary Driver (Current Kernel)
virtualbox-current                          - VirtualBox host modules for the linux-current kernel
virtualbox-guest-current                    - VirtualBox guest additions for the linux-current kernel

virtualbox-guest could even be uninstalled I think (not inside a VM), but it'll stay there in the meantime.

Alrighty, I'll prioritize glx and virtualbox during rebuilds then and send you a command to run when they're done rebuilding and ready to be installed for validation.

JoshStrobl reopened this task as Open.Jan 20 2020, 3:45 PM

Re-opening for validation.

Please run the following command and reboot:

sudo eopkg install https://mirrors.rit.edu/solus/packages/unstable/l/linux-current/linux-current-5.4.12-144-1-x86_64.eopkg https://mirrors.rit.edu/solus/packages/unstable/n/nvidia-glx-driver/nvidia-glx-driver-common-440.44-329-1-x86_64.eopkg https://mirrors.rit.edu/solus/packages/unstable/n/nvidia-glx-driver/nvidia-glx-driver-modaliases-440.44-329-1-x86_64.eopkg https://mirrors.rit.edu/solus/packages/unstable/n/nvidia-glx-driver/nvidia-glx-driver-current-440.44-329-1-x86_64.eopkg https://mirrors.rit.edu/solus/packages/unstable/v/virtualbox/virtualbox-guest-common-6.1.2-140-1-x86_64.eopkg https://mirrors.rit.edu/solus/packages/unstable/v/virtualbox/virtualbox-guest-current-6.1.2-140-1-x86_64.eopkg https://mirrors.rit.edu/solus/packages/unstable/v/virtualbox/virtualbox-common-6.1.2-140-1-x86_64.eopkg https://mirrors.rit.edu/solus/packages/unstable/v/virtualbox/virtualbox-current-6.1.2-140-1-x86_64.eopkg

If it yells at you about missing and other packages during that install command, paste the output and I'll get back to ya!

Alright, but unfortunately my time is almost up and I won't be able to do this before a few hours. I'll answer as soon as I can.

Ok, the command works and so does my touchpad. Thanks a lot!
Just a question: this will be seamless as soon as the packages hit stable? Or will I need to do something on next sync?

Just a heads-up, the new kernel package (with the patch) seems to prevent my my machine from booting. It gets stuck at the blinking cursor phase (can't switch TTYs either).

Here's a pastebin of journalctl, in case you want to take a look: https://paste.ubuntu.com/p/b572j2cWYJ/

Hardware:

System:    Host: solus-pc Kernel: 5.4.12-143.current x86_64 (.144 doesn't boot of course) bits: 64 Desktop: Budgie 10.5.1 Distro: Solus 4.0 
Machine:   Type: Desktop Mobo: MEDION model: MS-7797 v: 1.1 serial: <root required> BIOS: American Megatrends v: M7797W08.209 
           date: 09/20/2012 
CPU:       Quad Core: Intel Core i5-3350P type: MCP speed: 1596 MHz min/max: 1600/3300 MHz 
Graphics:  Device-1: NVIDIA GP107 [GeForce GTX 1050 Ti] driver: nvidia v: 440.48.02 
           Display: x11 server: X.Org 1.20.6 driver: nvidia tty: N/A 
           OpenGL: renderer: GeForce GTX 1050 Ti/PCIe/SSE2 v: 4.6.0 NVIDIA 440.48.02 
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169 
           Device-2: Realtek RTL8188CUS 802.11n WLAN Adapter type: USB driver: rtl8192cu 
Drives:    Local Storage: total: 931.51 GiB used: 375.19 GiB (40.3%) 
Info:      Processes: 212 Uptime: 10m Memory: 7.78 GiB used: 1.50 GiB (19.3%) Shell: zsh inxi: 3.0.37
JoshStrobl closed this task as Resolved.Jan 20 2020, 11:37 PM

Just a heads-up, the new kernel package (with the patch) seems to prevent my my machine from booting. It gets stuck at the blinking cursor phase (can't switch TTYs either).

Sounds more likely that you're just using your nvidia-developer-driver on 440.48.02 from D8065, which isn't built against our linux-current. You need to rebuild your driver or use the one that's in the repo.

Closing since @elusian's issue is resolved.

Ah yes, I'm a fool.
I checked whether the driver had already been rebuilt for the new kernel, but forgot that my changes hadn't yet been merged in the repository. Sorry about the confusion!

All good, when I saw the NVIDIA version number I knew the issue without looking at the logs :D I've done it before too.