Comment 26 for bug 681904

Revision history for this message
Daniel Manrique (roadmr) wrote : Re: Samsung QX410 trackpad not recognized

I have been tinkering with the drivers for this hardware and I believe this bug should be moved to kernel, as per https://wiki.ubuntu.com/DebuggingTouchpadDetection.

The Samsung QX410 uses an Elantech trackpad. The psmouse driver includes support for some Elantech pads, but this particular one isn't recognized because it returns a different result when queried via the "magic knock" (function elantech_detect in elantech.c). This happens before the force_elantech module parameter comes into effect (which forces use of elantech when the firmware version is not recognized, but AFTER the magic knock has returned the expected result).

I forced the elantech driver to continue initializing the pad despite the unexpected reply to magic knock, and this is what I got (dmesg output):

[ 9721.216300] elantech: unexpected magic knock result 0x3c, 0x03, 0x00.
[ 9721.250065] elantech: Elantech version query result 0x85, 0x1b, 0x00.
[ 9721.284321] elantech: assuming hardware version 2, firmware version 133.27.0
[ 9721.318037] elantech: Synaptics capabilities query result 0x19, 0x14, 0x0c.
[ 9721.578902] elantech: retrying ps2 command 0xe6 (2).
[ 9722.094936] elantech: retrying ps2 command 0xf8 (2).
[ 9722.797061] elantech: retrying ps2 command 0xf8 (1).

If the system is rebooted with the modified psmouse driver, the device gets properly reported as a touchpad and all the relevant controls appear in the mouse control panel. However since data received from the pad is apparently not decoded properly by the psmouse driver (different encoding schema maybe), nothing really works: there's no pointer movement and the only thing that generates events (as read by evtest) are the left and right buttons (and then, not consistently).

I'm attaching output from evtest (keep in mind I was sliding my finger across the pad and clicking buttons, all that registers are the button clicks) and from dmesg, showing loss of sync and subsequent reconnection from the driver.

I hope this helps with this bug, I guess a lot of newer computers will start using these newer Elantech pads and it'd be great to have support out of the box.