Elantech touchpad detected as Logitech PS2 Wheel Mouse
Subsystems (2)
Hi,
I'm running debian wheezy with latest kernel (uname -a gives me: Linux ehehehpc 3.2.0-2-686-pae #1 SMP Sun May 13 07:51:23 UTC 2012 i686 GNU/Linux).
While I'm expecting the kernel to correctly detect my touchpad, it's detected as a mouse. No scrolling, no multitouch.
Below there's a snippet of my /proc/bus/input/devices:
[...]
I: Bus=0011 Vendor=0002 Product=0001 Version=0063
N: Name="PS/2 Logitech Wheel Mouse"
P: Phys=isa0060/serio4/input0
S: Sysfs=/devices/platform/i8042/serio4/input/input7
U: Uniq=
H: Handlers=mouse0 event7
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103
[...]
The notebook I'm using is a Fujitsu Siemens Amilo pi2515. I also tried kernel version 3.3.6 with same results. In both cases grep ELANTECH .config gives me:
CONFIG_MOUSE_PS2_ELANTECH=y
so I suppose it shouldn't be a kernel configuration problem. I opened a bug on http://bugs.debian.org/673588
You can find more information and preliminary testing there. Thank you very much for your attention.
Regards.
Nicola
Quoted 3 lines · Nicola Alessi
While I'm expecting the kernel to correctly detect my touchpad, it's detected as a mouse. No scrolling, no multitouch.
Below there's a snippet of my/proc/bus/input/devices:
Kernel log:
http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=15;filename=dmesg.txt;att=3;bug=673588
[...]
Quoted 2 lines
The notebook I'm using is a Fujitsu Siemens Amilo pi2515. I also tried kernel version 3.3.6 with same results.
Can you get a log with the following patch applied?
Thanks,
Jonathan
drivers/input/mouse/elantech.c +1 -0
@@ -10,6 +10,7 @@* Trademarks are the property of their respective owners. */ +#define DEBUG #include <linux/delay.h> #include <linux/slab.h> #include <linux/module.h>
I applied the patch. Now my kernel (3.3.6) log says:
[ 6.734445] psmouse serio4: elantech: unexpected magic knock result
0x3c, 0x03, 0x3c.
I hope this can help.
Nicola
Il 20/05/12 21:20, Jonathan Nieder ha scritto:
Quoted 17 lines
Can you get a log with the following patch applied?
Thanks,
Jonathandrivers/input/mouse/elantech.c +1
-0@@ -10,6 +10,7 @@* Trademarks are the property of their respective owners. */ +#define DEBUG #include <linux/delay.h> #include <linux/slab.h> #include <linux/module.h>
Quoted 3 lines · Nicola Alessi
[ 6.734445] psmouse serio4: elantech: unexpected magic knock result 0x3c, 0x03, 0x3c.I hope this can help.
Yes, thanks much.
One more question: how do you know this touchpad is an Elantech pad? E.g., is there another OS with a driver that detects it as Elantech?
Based on [1] it seems the Amilo Pi 2515 ships with a variety of different touchpad models.
Jonathan
Hi Jonathan and Nicola,
Quoted 4 lines · Jonathan Nieder
Quoted 2 lines · Nicola Alessi
[ 6.734445] psmouse serio4: elantech: unexpected magic knockresult
0x3c,0x03,0x3c.
^^^^^^^^^^^^^^^^^
Yes, from this, the touchpad is probably Elan.
But it is meant to be used as such, a basic pointing device. Some NB vendors may not require the multi-finger functions, for cost reason or others. Elan touchpad reports this magic knock when it only supports the basic mouse functions. With these touchpads, the multi-finger functons are NOT TESTED and thus NOT SUPPORTED.
We used to have a "force_elantech" module param to force the TP to be detected as Elan, but I removed it when I was updating elantech.c to support newer models. Maybe you can convince Dmitry to add it back, but still, this kind of Elan touchpads is not supported as multi-touch pointing device, so I wouldn't recommand it.
I hope this helps.
Best regards,
-JJ
Quoted 14 lines
Quoted 2 lines
I hope this can help.
Yes, thanks much.
One more question: how do you know this touchpad is an Elantech pad? E.g., is there another OS with a driver that detects it as Elantech?
Based on [1] it seems the Amilo Pi 2515 ships with a variety of different touchpad models.
Jonathan
Quoted 5 lines · JJ Ding
We used to have a "
force_elantech" module param to force the TP to be detected as Elan, but I removed it when I was updatingelantech.cto support newer models. Maybe you can convince Dmitry to add it back, but still, this kind of Elan touchpads is not supported as multi-touch pointing device, so I wouldn't recommand it.
Neat.
Quoted 1 line
I hope this helps.
Definitely; thanks for explaining. Nicola, I'm still curious about the following:
Quoted 1 line
Quoted 1 line
E.g., is there another OS with a driver that detects it as Elantech?
If another OS offers more functionality, then we would know the hardware is capable of it.
The patch JJ described follows, in case you want to experiment.
-- >8 --
Subject: Input: elantech - allow forcing Elantech protocol when knock fails
This does not quite revert 4af61e90270e35bafa9e99a3c48fb3f363da592d ("Input: elantech - remove module parameter force_elantech") --- the old force_elantech parameter was about ignoring an unrecognized response to ETP_FW_VERSION_QUERY, while this one is about ignoring unrecognized responses to the magic knock.
This patch is just for experimentation and is not meant for inclusion.
--- drivers/input/mouse/elantech.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)
drivers/input/mouse/elantech.c +12 -4
@@ -27,6 +27,10 @@ fmt, ##__VA_ARGS__); \ }while (0 ) +static bool force_elantech; +module_param_named (force_elantech, force_elantech, bool,0644 ); +MODULE_PARM_DESC (force_elantech,"Force the Elantech PS/2 protocol extension to be used, 1 = enabled, 0 = disabled (default)." ); +/* * Send a Synaptics style sliced query command */
@@ -1195,10 +1199,14 @@ int elantech_detect(struct psmouse *psmouse, bool set_properties)*/ if (param[0 ] !=0x3c || param[1 ] !=0x03 || (param[2 ] !=0xc8 && param[2 ] !=0x00 )) { -psmouse_dbg (psmouse, -"unexpected magic knock result 0x%02x, 0x%02x, 0x%02x.\n" , - param[0 ], param[1 ], param[2 ]); -return -1 ; +if (!force_elantech) { +psmouse_dbg (psmouse, +"unexpected magic knock result 0x%02x, 0x%02x, 0x%02x.\n" , + param[0 ], param[1 ], param[2 ]); +return -1 ; + } +psmouse_warning (psmouse,"Unexpected magic knock result.\n" ); +psmouse_info (psmouse,"Enabling anyway due to force_elantech.\n" ); }/*
Signature · 1 line
1.7.10.2
Hi,
I'd like to thank you all for the time you dedicated to this problem. I'll try to experiment with the patch and I'll report if something interesting happens.
@Jonathan: there are two things that make me think to have a elantech touchpad. First, a sticker from the manufacturer below laptop's battery pack (in the slot, you can see it only if you remove the battery) labeled "ELANTEK". Second, I think more important, I've played around (about two months ago) with dkms and patches to psmouse. More in detail, I tried the patch from Seth Forshee (see
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/681904/comments/111).
Through it didn't fix the issue (the touchpad was totally unusable due to continuous "sync lost" messages) the touchpad was recognized as an elantech (I don't remember the details, but I could try to build the module again and mail some info).
Thanks again,
Nicola
Il 21/05/12 10:28, Jonathan Nieder ha scritto:
Quoted 70 lines
Quoted 5 lines · JJ Ding
We used to have a "
force_elantech" module param to force the TP to be detected as Elan, but I removed it when I was updatingelantech.cto support newer models. Maybe you can convince Dmitry to add it back, but still, this kind of Elan touchpads is not supported as multi-touch pointing device, so I wouldn't recommand it.Neat.
Quoted 1 line
I hope this helps.
Definitely; thanks for explaining. Nicola, I'm still curious about the following:
Quoted 1 line
Quoted 1 line
E.g., is there another OS with a driver that detects it as Elantech?
If another OS offers more functionality, then we would know the hardware is capable of it.
The patch JJ described follows, in case you want to experiment.
-- >8 --
Subject: Input: elantech - allow forcing Elantech protocol when knock failsThis does not quite revert
4af61e90270e35bafa9e99a3c48fb3f363da592d("Input: elantech - remove module parameterforce_elantech") --- the oldforce_elantechparameter was about ignoring an unrecognized response toETP_FW_VERSION_QUERY, while this one is about ignoring unrecognized responses to the magic knock.This patch is just for experimentation and is not meant for inclusion.
--- drivers/input/mouse/elantech.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)drivers/input/mouse/elantech.c +12
-4@@ -27,6 +27,10 @@ fmt, ##__VA_ARGS__); \ }while (0 ) +static bool force_elantech; +module_param_named (force_elantech, force_elantech, bool,0644 ); +MODULE_PARM_DESC (force_elantech,"Force the Elantech PS/2 protocol extension to be used, 1 = enabled, 0 = disabled (default)." ); +/* * Send a Synaptics style sliced query command */ @@ -1195,10 +1199,14 @@ int elantech_detect(struct psmouse *psmouse, bool set_properties)*/ if (param[0 ] !=0x3c || param[1 ] !=0x03 || (param[2 ] !=0xc8 && param[2 ] !=0x00 )) { -psmouse_dbg (psmouse, -"unexpected magic knock result 0x%02x, 0x%02x, 0x%02x.\n" , - param[0 ], param[1 ], param[2 ]); -return -1 ; +if (!force_elantech) { +psmouse_dbg (psmouse, +"unexpected magic knock result 0x%02x, 0x%02x, 0x%02x.\n" , + param[0 ], param[1 ], param[2 ]); +return -1 ; + } +psmouse_warning (psmouse,"Unexpected magic knock result.\n" ); +psmouse_info (psmouse,"Enabling anyway due to force_elantech.\n" ); }/*