[Bug 1193064] New: Touchpad doesn't work on Lenovo Yoga Slim7
https://bugzilla.suse.com/show_bug.cgi?id=1193064 Bug ID: 1193064 Summary: Touchpad doesn't work on Lenovo Yoga Slim7 Classification: openSUSE Product: openSUSE Distribution Version: Leap 15.3 Hardware: 64bit OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: Kernel Assignee: kernel-bugs@opensuse.org Reporter: suse@rop.cx QA Contact: qa-bugs@suse.de Found By: --- Blocker: --- Touchpad doesn't work on Lenovo Yoga Slim7 That problem on Leap 15.3 and Tumbleweed (also in RHEL 9 beta) And some bugs on Fedora (it failed to start after sleep, but at all is working), so probably problem more on kernel side -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c1
--- Comment #1 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c2
--- Comment #2 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c3
--- Comment #3 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c4
--- Comment #4 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c5
--- Comment #5 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c6
--- Comment #6 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c7
Takashi Iwai
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c8
--- Comment #8 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c9
--- Comment #9 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c10
--- Comment #10 from Takashi Iwai
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c11
--- Comment #11 from Artyom
This sounds like the case: https://bugzilla.kernel.org/show_bug.cgi?id=211553
Does the workaround suggested there work with yours? (either the dynamic re-binding or blacklisting).
echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/elan_i2c/unbind echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid/bind No, but I will try blacklisting Also I would like to mention that it works on fedora35 -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c12
--- Comment #12 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c13
--- Comment #13 from Artyom
This sounds like the case: https://bugzilla.kernel.org/show_bug.cgi?id=211553
Does the workaround suggested there work with yours? (either the dynamic re-binding or blacklisting).
Dynamic re-binding didn't help, but blacklisting did :) Thanks! -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c14
Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c15
--- Comment #15 from Takashi Iwai
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c16
--- Comment #16 from Artyom
How about rebinding?
echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid/unbind echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid/bind
You can try the above while the touchpad is working, and verify that the first call stops the touchpad and the second restores. If that works, try the same after the resume. It might be a different file name than i2c_hid on the recent system, so check the path beforehand. (e.g. on my 5.16-rc kernel, it's i2c_hid_acpi).
bash: /sys/bus/i2c/drivers/i2c_hid/unbind: No such file or directory localhost:/ # echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/unbind localhost:/ # echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/bind (In reply to Takashi Iwai from comment #15)
How about rebinding?
echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid/unbind echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid/bind
You can try the above while the touchpad is working, and verify that the first call stops the touchpad and the second restores. If that works, try the same after the resume. It might be a different file name than i2c_hid on the recent system, so check the path beforehand. (e.g. on my 5.16-rc kernel, it's i2c_hid_acpi).
When touchpad is working (blacklisted elan) echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/unbind Disables echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/bind Restores (on my 5.15.3 kernel, it's i2c_hid_acpi too) When touchpad is not working (delete blacklist) localhost:/ # echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/unbind bash: echo: write error: No such device localhost:/ # echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/bind bash: echo: write error: Device or resource busy -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c17
--- Comment #17 from Takashi Iwai
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c18
--- Comment #18 from Artyom
Without the blacklist, you need to unbind the elantech driver at first, then bind to the hid_i2c_acpi.
echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/elan_i2c/unbind echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/bind
Yes, that fixed, thanks (unbind elan and bind i2c_hid) (In reply to Takashi Iwai from comment #17)
And, my question was: what happens if you re-bind the i2c-hid-acpi driver after the resume where the touchpad doesn't work any longer. Does it make the touchpad working again? Seems rebinding is working, but after every rebind it resets touchpad settings
-- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c19
Takashi Iwai
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c20
--- Comment #20 from Artyom
OK, then it's about the PM problem of i2c-hid stuff.
I'm building a test kernel to ignore wakeup capability of the device to enforce the power up at resume. The test kernel is being built in OBS home:tiwai:bsc1193064 repo. Once after the build finishes, it'll be available at http://download.opensuse.org/repositories/home:/tiwai:/bsc1193064/standard/
Please check it out later. Note that it's an unofficial build, hence it won't boot with Secure Boot.
I did: rpm -ivh kernel-default-5.15.5-1.1.gafe3127.x86_64.rpm, reboot, uname -r 5.15.5-1.gafe3127-default But seems that problem still there .. -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c21
--- Comment #21 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c22
--- Comment #22 from Artyom
rpm -qa | grep gafe3127 kernel-devel-5.15.5-1.1.gafe3127.noarch kernel-default-devel-5.15.5-1.1.gafe3127.x86_64 kernel-default-5.15.5-1.1.gafe3127.x86_64 kernel-source-vanilla-5.15.5-1.1.gafe3127.noarch
I seems still no result grub.cfg: linuxefi /boot/vmlinuz-5.15.5-1.gafe3127-default root=/dev/mapper/system-root ${extra_cmdline} splash=silent quiet mitigations=auto initrdefi /boot/initrd-5.15.5-1.gafe3127-default (automatically generated by first rpm file, which is kernel-default-5.15.5-1.1.gafe3127.x86_64.rpm) -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c23
--- Comment #23 from Takashi Iwai
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c24
--- Comment #24 from Artyom
Hrm, my kernel merely changed the suspend/resume functions and nothing else, so the behavior change except for suspend/resume isn't expected. And, it doesn't change the binding, so the blacklist is still necessary. It was asked only for testing the suspend/resume problem.
You should install only kernel-default.rpm, nothing else. At easiest, download kernel-default-5.15*.rpm from the URL and install it manually via zypper install.
Oh, my bad... My current fix is disabling touchpad service on startup (backgroud services on kde) - then it doesn't disable after suspend :) but fix for that would be too cool because in my case touchpad is enabled in suspend mode (it still consume electricity), also it's not possible to run this service manually (failed to start touchpad service) Also there strange enabled status when it broken For fixing after suspend/resume needs (maybe your kernel unbind elan_i2c?) # echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/unbind # echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/bind Maybe problem with touchpad service ? -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c25
--- Comment #25 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c26
--- Comment #26 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c27
--- Comment #27 from Takashi Iwai
(In reply to Takashi Iwai from comment #23)
Hrm, my kernel merely changed the suspend/resume functions and nothing else, so the behavior change except for suspend/resume isn't expected. And, it doesn't change the binding, so the blacklist is still necessary. It was asked only for testing the suspend/resume problem.
You should install only kernel-default.rpm, nothing else. At easiest, download kernel-default-5.15*.rpm from the URL and install it manually via zypper install.
Oh, my bad... My current fix is disabling touchpad service on startup (backgroud services on kde) - then it doesn't disable after suspend :) but fix for that would be too cool because in my case touchpad is enabled in suspend mode (it still consume electricity), also it's not possible to run this service manually (failed to start touchpad service) Also there strange enabled status when it broken For fixing after suspend/resume needs (maybe your kernel unbind elan_i2c?) # echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/unbind # echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/bind Maybe problem with touchpad service ?
Is this behavior (jumping pointer?) with the unpatched kernel? I expected that the patch may influence on this. In anyway, if not done yet, please check the following with the patched kernel: - Boot with the blacklist - Try suspend / resume without re-binding and let me know which problem is present. FWIW, Fedora kernel "works" because the device is bound with i2c-hid, not elantech. Maybe they have some workaround in it or it's just a matter of device binding order that casually worked. But the suspend/resume problem should remain with them unless any fix is applied. -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c28
--- Comment #28 from Artyom
(In reply to Artyom from comment #24)
(In reply to Takashi Iwai from comment #23)
Hrm, my kernel merely changed the suspend/resume functions and nothing else, so the behavior change except for suspend/resume isn't expected. And, it doesn't change the binding, so the blacklist is still necessary. It was asked only for testing the suspend/resume problem.
You should install only kernel-default.rpm, nothing else. At easiest, download kernel-default-5.15*.rpm from the URL and install it manually via zypper install.
Oh, my bad... My current fix is disabling touchpad service on startup (backgroud services on kde) - then it doesn't disable after suspend :) but fix for that would be too cool because in my case touchpad is enabled in suspend mode (it still consume electricity), also it's not possible to run this service manually (failed to start touchpad service) Also there strange enabled status when it broken For fixing after suspend/resume needs (maybe your kernel unbind elan_i2c?) # echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/unbind # echo -n "i2c-ELAN0000:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/bind Maybe problem with touchpad service ?
Is this behavior (jumping pointer?) with the unpatched kernel? I expected that the patch may influence on this.
In anyway, if not done yet, please check the following with the patched kernel: - Boot with the blacklist - Try suspend / resume without re-binding and let me know which problem is present.
FWIW, Fedora kernel "works" because the device is bound with i2c-hid, not elantech. Maybe they have some workaround in it or it's just a matter of device binding order that casually worked. But the suspend/resume problem should remain with them unless any fix is applied.
No, this on both kernels, but this was not the case in Fedora (there it were a easy way to rebind) The problems is present :( At the moment I have not noticed the difference between the kernels Yes, looks like that, but all (including fedora) have a problem with touchpad service -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c29
--- Comment #29 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c30
--- Comment #30 from Artyom
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c31
--- Comment #31 from Takashi Iwai
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c32
--- Comment #32 from Artyom
OK, I'm building another test kernel in the same OBS repo home:tiwai:bsc1193064. At this time, it's a test patch to avoid binding with elan-i2c, so it should work without blacklist. Please give it a try once after the build finishes. It'll be based on 5.16.4.
It's still binding with elan-i2c :( -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c33
--- Comment #33 from Takashi Iwai
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c34
Artyom
OK, I'm building another test kernel in the same OBS repo home:tiwai:bsc1193064. At this time, it's a test patch to avoid binding with elan-i2c, so it should work without blacklist. Please give it a try once after the build finishes. It'll be based on 5.16.4.
It still binding with elan-i2c(In reply to Takashi Iwai from comment #33)
There was a wrong DMI matching field, hence it didn't hit the list. Now a new test kernel (5.16.5) is being built in the same OBS repo with the revised patch. Please check it later.
Yay! Thank you, it works correctly now Will this patch get into the TW and Leap (15.4) default kernel? -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c51
--- Comment #51 from Swamp Workflow Management
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c53
--- Comment #53 from Swamp Workflow Management
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c54
Jiri Slaby
OK, I pushed the workaround patch to stable branch, while asking upstream about a more proper fix (if any). Let's see.
Any replies there? This is likely still not fixed upstream. At least not by the proposed patch. -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c55
Takashi Iwai
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c56
Artyom
My RFC patch wasn't taken, as we wanted a different approach: https://lore.kernel.org/all/s5hleyqwowl.wl-tiwai@suse.de/
It's a question whether the same situation still remains with the latest upstream.
Artyom, could you check whether the problem still appears when you install and boot with kernel-vanilla package?
This problem is still appears on kernel-vanilla (6.0.7-1-vanilla) TW package :( -- You are receiving this mail because: You are the assignee for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1193064
https://bugzilla.suse.com/show_bug.cgi?id=1193064#c57
--- Comment #57 from Takashi Iwai
participants (1)
-
bugzilla_noreply@suse.com