Bug 1326577

Summary: Elantech Touchpad doesn't work
Product: [Fedora] Fedora Reporter: Damjan <damjanz>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED INSUFFICIENT_DATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 24CC: btissoir, damjanz, gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda, mchehab
Target Milestone: ---Flags: jforbes: needinfo?
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-28 17:22:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
F23-dmesg
none
F23-x.org.log
none
F24-x.org.log
none
F24_elantech.log
none
2016.09.26.acpidump none

Description Damjan 2016-04-13 07:01:18 UTC
Created attachment 1146724 [details]
F23-dmesg

Description of problem:
On the Fujitsu E556 laptop, the Elantech Touchpad doesn't work (dead). 
In the gnome "Mouse & touchpad" settings I can toggle Touchpad settings, but it has no effect.

Version-Release number of selected component (if applicable):
# cat /etc/redhat-release 
Fedora release 23 (Twenty Three)
# uname -a
Linux nb2079 4.4.6-301.fc23.x86_64 #1 SMP Wed Mar 30 16:43:58 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

How reproducible:
Always

Steps to Reproduce:
1. Install fedora 23 on Fujitsu E556 laptop


Actual results:
Touchpad does not work

Expected results:
Touchpad should work

Additional info:
# cat /etc/redhat-release 
Fedora release 23 (Twenty Three)
# uname -a
Linux nb2079 4.4.6-301.fc23.x86_64 #1 SMP Wed Mar 30 16:43:58 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

# dmesg | grep -i elan
[    2.129409] psmouse serio2: elantech: assuming hardware version 4 (with firmware version 0x570f01)
[    2.156462] psmouse serio2: elantech: Synaptics capabilities query result 0x40, 0x14, 0x0c.
[    2.183563] psmouse serio2: elantech: Elan sample query result 02, 24, a7
[    2.332543] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio2/input/input9

# journalctl -b | grep -i elan
Apr 13 08:10:36 nb2079 kernel: psmouse serio2: elantech: assuming hardware version 4 (with firmware version 0x570f01)
Apr 13 08:10:36 nb2079 kernel: psmouse serio2: elantech: Synaptics capabilities query result 0x40, 0x14, 0x0c.
Apr 13 08:10:36 nb2079 kernel: psmouse serio2: elantech: Elan sample query result 02, 24, a7
Apr 13 08:10:37 nb2079 kernel: input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio2/input/input9
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/event4)
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (**) ETPS/2 Elantech Touchpad: Applying InputClass "evdev touchpad catchall"
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (**) ETPS/2 Elantech Touchpad: Applying InputClass "touchpad catchall"
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (**) ETPS/2 Elantech Touchpad: Applying InputClass "Default clickpad buttons"
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (**) ETPS/2 Elantech Touchpad: Applying InputClass "libinput touchpad catchall"
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (II) Using input driver 'libinput' for 'ETPS/2 Elantech Touchpad'
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (**) ETPS/2 Elantech Touchpad: always reports core events
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (II) input device 'ETPS/2 Elantech Touchpad', /dev/input/event4 is tagged by udev as: Touchpad
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (II) input device 'ETPS/2 Elantech Touchpad', /dev/input/event4 is a touchpad
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (II) XINPUT: Adding extended input device "ETPS/2 Elantech Touchpad" (type: TOUCHPAD, id 13)
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (**) ETPS/2 Elantech Touchpad: (accel) selected scheme none/0
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (**) ETPS/2 Elantech Touchpad: (accel) acceleration factor: 2.000
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (**) ETPS/2 Elantech Touchpad: (accel) acceleration threshold: 4
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (II) input device 'ETPS/2 Elantech Touchpad', /dev/input/event4 is tagged by udev as: Touchpad
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (II) input device 'ETPS/2 Elantech Touchpad', /dev/input/event4 is a touchpad
Apr 13 08:11:15 nb2079 /usr/libexec/gdm-x-session[2118]: (II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/mouse0)


# xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech Wireless Mouse M560            	id=10	[slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Fujitsu FUJ02E3                         	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ FJ Camera                               	id=11	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]

Following command does not produce output on touchpad touch, scroll, click,...
# xinput test 13




WORKAROUND 1:
Insert "psmouse.proto=bare" in /etc/default/grub (line GRUB_CMDLINE_LINUX) and update grub:
# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Problem:
-touchpad is working until laptop goes into suspend mode
-after suspend mode touchpad stops working and keyboard behave strange (keystroke does not work, on single keystroke multiple letters are displayed which is really annoying,...)


WORKAROUND 2:
Insert "psmouse.proto=imps i8042.reset i8042.nomux=1" in /etc/default/grub (line GRUB_CMDLINE_LINUX) and update grub:
# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Problem:
-touchpad and keyboard are working fine now
-however solution is not acceptable, touchpad settins are not present in gnome "Mouse & touchpad" 
-can not disable touchpad while typing

Additional info with "psmouse.proto=imps i8042.reset i8042.nomux=1":

# xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech Wireless Mouse M560            	id=10	[slave  pointer  (2)]
⎜   ↳ PS/2 Generic Mouse                      	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Fujitsu FUJ02E3                         	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ FJ Camera                               	id=11	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]


Please check attached dmesg.txt (# dmesg > dmesg.txt) and x.org.log (# journalctl -b _COMM=gdm-x-session).

Comment 1 Damjan 2016-04-13 07:02:19 UTC
Created attachment 1146725 [details]
F23-x.org.log

Comment 2 Josh Boyer 2016-05-27 13:26:02 UTC
Is this still happening with 4.5.y?

Comment 3 Damjan 2016-06-08 14:33:14 UTC
Yes (4.5.5-201.fc23.x86_64).

For the test I removed "psmouse.proto=imps i8042.reset i8042.nomux=1" from /etc/default/grub and updated grub. After reboot touchpad does not work at all and after suspend keyboard behave strange again.

Regards,
Damjan

Comment 4 Damjan 2016-08-03 06:37:18 UTC
Fresh install of fedora 24. Still doesn't work. Here is the additional info:

# cat /etc/redhat-release
Fedora release 24 (Twenty Four)

# uname -a
Linux nb2079 4.6.4-301.fc24.x86_64 #1 SMP Tue Jul 12 11:50:00 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

# dmesg | grep -i elan
[    2.621419] psmouse serio2: elantech: assuming hardware version 4 (with firmware version 0x570f01)
[    2.690616] psmouse serio2: elantech: Synaptics capabilities query result 0x40, 0x14, 0x0c.
[    2.717498] psmouse serio2: elantech: Elan sample query result 02, 24, a7
[    2.866611] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio2/input/input9

# journalctl -b | grep -i elan
Aug 03 08:07:30 nb2079 kernel: psmouse serio2: elantech: assuming hardware version 4 (with firmware version 0x570f01)
Aug 03 08:07:30 nb2079 kernel: psmouse serio2: elantech: Synaptics capabilities query result 0x40, 0x14, 0x0c.
Aug 03 08:07:31 nb2079 kernel: psmouse serio2: elantech: Elan sample query result 02, 24, a7
Aug 03 08:07:31 nb2079 kernel: input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio2/input/input9
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/event4)
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (**) ETPS/2 Elantech Touchpad: Applying InputClass "evdev touchpad catchall"
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (**) ETPS/2 Elantech Touchpad: Applying InputClass "evdev touchscreen catchall"
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (**) ETPS/2 Elantech Touchpad: Applying InputClass "touchpad catchall"
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (**) ETPS/2 Elantech Touchpad: Applying InputClass "Default clickpad buttons"
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (**) ETPS/2 Elantech Touchpad: Applying InputClass "libinput touchpad catchall"
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (**) ETPS/2 Elantech Touchpad: Applying InputClass "libinput touchscreen catchall"
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (II) Using input driver 'libinput' for 'ETPS/2 Elantech Touchpad'
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (**) ETPS/2 Elantech Touchpad: always reports core events
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (II) input device 'ETPS/2 Elantech Touchpad', /dev/input/event4 is tagged by udev as: Touchpad Touchscreen
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (II) input device 'ETPS/2 Elantech Touchpad', /dev/input/event4 is a touchpad
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (II) XINPUT: Adding extended input device "ETPS/2 Elantech Touchpad" (type: TOUCHPAD, id 13)
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (**) ETPS/2 Elantech Touchpad: (accel) selected scheme none/0
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (**) ETPS/2 Elantech Touchpad: (accel) acceleration factor: 2.000
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (**) ETPS/2 Elantech Touchpad: (accel) acceleration threshold: 4
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (II) input device 'ETPS/2 Elantech Touchpad', /dev/input/event4 is tagged by udev as: Touchpad Touchscreen
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (II) input device 'ETPS/2 Elantech Touchpad', /dev/input/event4 is a touchpad
Aug 03 08:08:09 nb2079 /usr/libexec/gdm-x-session[1695]: (II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/mouse0)

# xinput list
Virtual core pointer                    	id=2	[master pointer  (3)]
	Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
	Logitech Wireless Mouse M560            	id=10	[slave  pointer  (2)]
	ETPS/2 Elantech Touchpad                	id=13	[slave  pointer  (2)]
Virtual core keyboard                   	id=3	[master keyboard (2)]
	Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
	Fujitsu FUJ02E3                         	id=6	[slave  keyboard (3)]
	Video Bus                               	id=7	[slave  keyboard (3)]
	Power Button                            	id=8	[slave  keyboard (3)]
	Sleep Button                            	id=9	[slave  keyboard (3)]
	FJ Camera                               	id=11	[slave  keyboard (3)]
	AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]

# journalctl -b _COMM=gdm-x-session (see the attached file F24-x.org.log)

Comment 5 Damjan 2016-08-03 06:37:58 UTC
Created attachment 1186954 [details]
F24-x.org.log

Comment 6 Laura Abbott 2016-09-23 19:18:13 UTC
*********** MASS BUG UPDATE **************
 
We apologize for the inconvenience.  There is a large number of bugs to go through and several of them have gone stale.  Due to this, we are doing a mass bug update across all of the Fedora 24 kernel bugs.
 
Fedora 24 has now been rebased to 4.7.4-200.fc24.  Please test this kernel update (or newer) and let us know if you issue has been resolved or if it is still present with the newer kernel.
 
If you have moved on to Fedora 25, and are still experiencing this issue, please change the version to Fedora 25.
 
If you experience different issues, please open a new bug report for those.

Comment 7 Damjan 2016-09-24 03:56:13 UTC
It still doesn't work:

$ cat /etc/redhat-release
Fedora release 24 (Twenty Four)

$ uname -a
Linux nb2079 4.7.4-200.fc24.x86_64 #1 SMP Thu Sep 15 18:42:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

$ dmesg | grep -i elan
[    2.338448] psmouse serio2: elantech: assuming hardware version 4 (with firmware version 0x570f01)
[    2.365475] psmouse serio2: elantech: Synaptics capabilities query result 0x40, 0x14, 0x0c.
[    2.392638] psmouse serio2: elantech: Elan sample query result 02, 24, a7
[    2.541675] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio2/input/input9

$ dmesg | grep -i touch
[    2.541675] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio2/input/input9
[   26.784560] psmouse serio2: Touchpad at isa0060/serio2/input0 lost sync at byte 6
[   26.792919] psmouse serio2: Touchpad at isa0060/serio2/input0 lost sync at byte 6
[   26.801110] psmouse serio2: Touchpad at isa0060/serio2/input0 lost sync at byte 6
[   26.809265] psmouse serio2: Touchpad at isa0060/serio2/input0 lost sync at byte 6
[   26.817518] psmouse serio2: Touchpad at isa0060/serio2/input0 lost sync at byte 6
[   27.163904] psmouse serio2: Touchpad at isa0060/serio2/input0 lost sync at byte 6
[   27.172122] psmouse serio2: Touchpad at isa0060/serio2/input0 lost sync at byte 6


Please see the attached file F24_elantech.log for details.

Comment 8 Damjan 2016-09-24 03:57:35 UTC
Created attachment 1204320 [details]
F24_elantech.log

Comment 9 Damjan 2016-09-26 06:07:33 UTC
(In reply to Josh Boyer from comment #2)
> Is this still happening with 4.5.y?

Still happening with:
$ cat /etc/redhat-release
Fedora release 24 (Twenty Four)

$ uname -a
Linux nb2079 4.7.4-200.fc24.x86_64 #1 SMP Thu Sep 15 18:42:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

However, I removed "psmouse.proto=imps i8042.reset i8042.nomux=1" from /etc/default/grub and updated grub. Rebooted and touchpad is not working. However I found another "workaround":

# cat /sys/devices/platform/i8042/serio2/crc_enabled 
0x00


With the following command touchpad start working, can change settings in gnome "Mouse $ Touchpad", touchpad is automatically disabled while typing and touchpad and keyboard is working fine after sleep/suspend :)

# echo "1" > /sys/devices/platform/i8042/serio2/crc_enabled
 
# cat /sys/devices/platform/i8042/serio2/crc_enabled 
0x01

I created unit file so the "echo" command is applied after each boot...

Comment 10 Benjamin Tissoires 2016-09-26 07:03:35 UTC
Thanks for making the difficult task of finding a good workaround. I think it should be easy enough now to add this in the kernel for all this range of touchpads.

It appears I have other bug reports with Elantech touchpads that are behaving strangely while used in PS/2. These touchpads can also communicate over SMBus, and this bus solves most of the issues (simply as this is the one used under Windows).

To check whether yours can also communicate over SMBus, I'd like you to give me the output of:
- acpidump
- modprobe i2c-dev
- i2cdetect -l
- i2cdetect N
where N is the SMBus adapter enumerated by "i2cdetect -l"

When in "i2cdetect N", accept to test the full range of device. If there is one device answering at 0x15, there is a huge chance the device talks over SMBus too.

Comment 11 Damjan 2016-09-26 07:31:10 UTC
Here is the output of the i2cdetect commands:

# i2cdetect -l
i2c-0	i2c       	i915 gmbus dpc                  	I2C adapter
i2c-1	i2c       	i915 gmbus dpb                  	I2C adapter
i2c-2	i2c       	i915 gmbus dpd                  	I2C adapter
i2c-3	i2c       	DPDDC-A                         	I2C adapter
i2c-4	i2c       	DPDDC-B                         	I2C adapter
i2c-5	i2c       	DPDDC-C                         	I2C adapter
i2c-6	smbus     	SMBus I801 adapter at 3040      	SMBus adapter

# i2cdetect 6
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-6.
I will probe address range 0x03-0x77.
Continue? [Y/n] Y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- 08 -- -- -- -- -- -- -- 
10: -- -- -- -- -- 15 -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: 30 -- -- -- -- 35 36 -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- -- 
50: -- 51 52 -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

Output of the acpidump command is in the attached file 2016.09.26.acpidump

Thank you.

Comment 12 Damjan 2016-09-26 07:32:03 UTC
Created attachment 1204690 [details]
2016.09.26.acpidump

Comment 13 Benjamin Tissoires 2016-09-28 15:43:51 UTC
Thanks for the logs. Looks like the chances your touchpad can also be controlled over SMBus are high.

I tried all day pushing a koji build for you to test, though it seems I can't get one to compile (the mock buildroot step fails for f25). I'll try tomorrow again and I'll provide some instructions.

Comment 14 Benjamin Tissoires 2016-10-07 16:31:41 UTC
https://patchwork.kernel.org/patch/9363675/
^^^ upstream patch to enable CRC on PS/2 for this model, and which should solve the issue until I2C gets used.

Comment 15 Justin M. Forbes 2017-04-11 14:59:16 UTC
*********** MASS BUG UPDATE **************

We apologize for the inconvenience.  There are a large number of bugs to go through and several of them have gone stale.  Due to this, we are doing a mass bug update across all of the Fedora 24 kernel bugs.

Fedora 25 has now been rebased to 4.10.9-100.fc24.  Please test this kernel update (or newer) and let us know if you issue has been resolved or if it is still present with the newer kernel.

If you have moved on to Fedora 26, and are still experiencing this issue, please change the version to Fedora 26.

If you experience different issues, please open a new bug report for those.

Comment 16 Justin M. Forbes 2017-04-28 17:22:25 UTC
*********** MASS BUG UPDATE **************
This bug is being closed with INSUFFICIENT_DATA as there has not been a response in 2 weeks. If you are still experiencing this issue, please reopen and attach the 
relevant data from the latest kernel you are running and any data that might have been requested previously.