Re: [PATCH 2/3] Input: ALPS - Add code to support "Rushmore" touchpads

2 messages, 2 authors, 2013-01-26 · open the first message on its own page

Re: [PATCH 2/3] Input: ALPS - Add code to support "Rushmore" touchpads

From: Peter Korsgaard <jacmet@sunsite.dk>
Date: 2013-01-26 12:00:19

quoted
quoted
quoted
quoted
"Kevin" == Kevin Cernekee [off-list ref] writes:
 Kevin> These touchpads mostly speak the V3 protocol, but they use a different
 Kevin> method for detection.  The manufacturer's driver follows a sequence that
 Kevin> looks something like:

 Kevin>   Send E7 query and look for an exact match: 73 03 50 ("Dolphin")
 Kevin>   If no match, send EC query and look for 88 {07,08} xx ("Pinnacle")
 Kevin>   If no match, send E7 query and look for 73 02 {0a,14,3c,50} ("Mercury II")
 Kevin>   If no match, send a more complicated query and look for 88 05 xx ("Mercury")

 Kevin> This patch adds the new EC query before the usual E7 query.  It is
 Kevin> presumed (hoped) that anything that isn't in the Pinnacle series will not
 Kevin> return "88 07 xx" or "88 08 xx".

 Kevin> Tested on:

 Kevin> Dell E6230 ("Rushmore" model from the "Pinnacle" series)
 Kevin> Dell E6430 (same as above, but with trackstick + more buttons)

 Kevin> On both PCs, the E7 report is 73 03 0a, and the EC report is 88 08 1d.

 Kevin> Signed-off-by: Kevin Cernekee [off-list ref]

Thanks. I've tested it here on a e6230 (bios rev 08), and it gets
correctly detected (but twice?):

input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input14
input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input16

But the input events seem very noisy (E.G. the cursor jumps up and down
if I keep my finger pressed on the touchpad). Especially the Y
coordinate seems unstable:


Event: time 1359201123.864208, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1042
Event: time 1359201123.864208, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 669
Event: time 1359201123.864208, type 3 (EV_ABS), code 0 (ABS_X), value 1042
Event: time 1359201123.864208, type 3 (EV_ABS), code 1 (ABS_Y), value 669
Event: time 1359201123.864208, -------------- SYN_REPORT ------------
Event: time 1359201123.874130, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1043
Event: time 1359201123.874130, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 659
Event: time 1359201123.874130, type 3 (EV_ABS), code 0 (ABS_X), value 1043
Event: time 1359201123.874130, type 3 (EV_ABS), code 1 (ABS_Y), value 659
Event: time 1359201123.874130, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32
Event: time 1359201123.874130, -------------- SYN_REPORT ------------
Event: time 1359201123.883495, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1038
Event: time 1359201123.883495, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 660
Event: time 1359201123.883495, type 3 (EV_ABS), code 0 (ABS_X), value 1038
Event: time 1359201123.883495, type 3 (EV_ABS), code 1 (ABS_Y), value 660
Event: time 1359201123.883495, -------------- SYN_REPORT ------------
Event: time 1359201123.893641, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1037
Event: time 1359201123.893641, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 655
Event: time 1359201123.893641, type 3 (EV_ABS), code 0 (ABS_X), value 1037
Event: time 1359201123.893641, type 3 (EV_ABS), code 1 (ABS_Y), value 655
Event: time 1359201123.893641, -------------- SYN_REPORT ------------
Event: time 1359201123.904044, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1039
Event: time 1359201123.904044, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 651
Event: time 1359201123.904044, type 3 (EV_ABS), code 0 (ABS_X), value 1039
Event: time 1359201123.904044, type 3 (EV_ABS), code 1 (ABS_Y), value 651
Event: time 1359201123.904044, -------------- SYN_REPORT ------------
Event: time 1359201123.914023, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1040
Event: time 1359201123.914023, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 645
Event: time 1359201123.914023, type 3 (EV_ABS), code 0 (ABS_X), value 1040
Event: time 1359201123.914023, type 3 (EV_ABS), code 1 (ABS_Y), value 645
Event: time 1359201123.914023, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 30
Event: time 1359201123.914023, -------------- SYN_REPORT ------------
Event: time 1359201123.924340, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1035
Event: time 1359201123.924340, type 3 (EV_ABS), code 0 (ABS_X), value 1035
Event: time 1359201123.924340, -------------- SYN_REPORT ------------
Event: time 1359201123.934719, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1040
Event: time 1359201123.934719, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 635
Event: time 1359201123.934719, type 3 (EV_ABS), code 0 (ABS_X), value 1040
Event: time 1359201123.934719, type 3 (EV_ABS), code 1 (ABS_Y), value 635
Event: time 1359201123.934719, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 29
Event: time 1359201123.934719, -------------- SYN_REPORT ------------
Event: time 1359201123.946719, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1050
Event: time 1359201123.946719, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 665
Event: time 1359201123.946719, type 3 (EV_ABS), code 0 (ABS_X), value 1050
Event: time 1359201123.946719, type 3 (EV_ABS), code 1 (ABS_Y), value 665
Event: time 1359201123.946719, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 23

Any idea why? Do you see this as well?

-- 
Bye, Peter Korsgaard

Re: [PATCH 2/3] Input: ALPS - Add code to support "Rushmore" touchpads

From: Kevin Cernekee <cernekee@gmail.com>
Date: 2013-01-26 18:45:59

On Sat, Jan 26, 2013 at 3:53 AM, Peter Korsgaard [off-list ref] wrote:
Thanks. I've tested it here on a e6230 (bios rev 08), and it gets
correctly detected (but twice?):

input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input14
input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input16
It should show one input device for the trackstick, and one input
device for the touchpad:

[397682.041027] input: DualPoint Stick as
/devices/platform/i8042/serio1/input/input17
[397682.054959] input: AlpsPS/2 ALPS DualPoint TouchPad as
/devices/platform/i8042/serio1/input/input18

I'm not sure what would cause it to register two identical touchpads;
I don't see that on either E6230 or E6430.  Did you build psmouse.ko
from my DKMS sources, or apply the patches on top of some other
baseline?
But the input events seem very noisy (E.G. the cursor jumps up and down
if I keep my finger pressed on the touchpad). Especially the Y
coordinate seems unstable:
OK - I do see this on E6230 but not E6430.  Normal usage is fine but
the "pressed finger" test fails on E6230.  I'll do some digging and
try to figure out why.

In another thread [1] it was mentioned that the ALPS_BITMAP_*
constants needed to be tweaked for the Rushmore touchpads.  This might
be related.

I also saw some "lost sync" errors in the kernel log on E6430 after
running for a few days, but I don't know how to reproduce the issue.
They did not seem to be associated with any obvious touchpad
misbehavior.

[1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/606238
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help