lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 1 Nov 2008 15:48:28 +1100 From: Matthew Chapman <matthewc@....unsw.edu.au> To: linux-kernel@...r.kernel.org Subject: ALPS input driver problem with DualPoint on Dell E6400/E6500 I have a Dell Latitude E6400 laptop with an ALPS touchpad/touchstick combination, aka DualPoint. Individually, the touchpad and touchstick work fine. However, if I accidentally touch both together, or use the touchpad buttons while using the touchstick (or vice versa), things go astray. The pointer jumps around, stray mouse buttons are pressed, and the driver typically loses sync: [13333.661085] psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 5 [13333.662353] psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 1 [13333.669493] psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 - driver resynched. To cut a long story short, it seems that in this case the ALPS device sends a 9-byte packet format, with both a relative update and an absolute update combined (why oh why...). Has anyone else seen something like this? When I use just the touchstick and its buttons, the packets are normal PS/2 relative mode packets, e.g.: 08 01 00 dx=1 dy=0 09 01 00 dx=1 dy=0 left T/S button down 08 00 01 dx=0 dy=1 left T/S button up When I use just the touchpad and its buttons, the packets look like this, which also works fine with the current ALPS code: cf 27 1a 38 24 46 x=423 y=420 z=70 fin=1 cf 2c 1a 39 1e 45 x=428 y=414 z=69 fin=1 left T/P button down cf 2f 1a 38 17 44 x=431 y=407 z=68 fin=1 left T/P button up Let's say now I use the touchpad and press a touchstick button... cf 15 1a 38 5e 3d x=405 y=478 z=61 cf 19 1a 0f 00 00 39 56 3d x=409 y=470 z=61 left T/P button down ^^^^^^^^ cf 1d 1a 39 4e 3d x=413 y=462 z=61 cf 21 1a 0f 00 00 38 49 3f x=417 y=456 z=63 left T/P button up ^^^^^^^^ cf 21 1a 38 48 3e x=417 y=455 z=62 Now let's try moving the touchstick also... cf 3d 12 3f fa fd 18 4c 21 dx=-6 dy=-3 x=317 y=204 z=33 ^^^^^^^^ 38 fa fd dx=-6 dy=-3 cf 3a 12 3f f9 fc 18 4c 20 dx=-7 dy=-4 x=314 y=204 z=32 ^^^^^^^^ 38 fa fd dx=-6 dy=-3 etc. In other words, it seems like there's a relative update embedded right in the middle of the absolute mode packet, which can be identified by all the buttons being set to 1. I can put together a patch, but it's a non-trivial change... I'm interested in hearing whether anyone else has the same problem with their E6400/E6500 or other DualPoint laptop, or has better ideas regarding how to deal with this. Matt -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists