linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Frederik Himpe <fhimpe@telenet.be>
To: linux-kernel@vger.kernel.org
Cc: linux-input@vger.kernel.org
Subject: Re: ALPS input driver problem with DualPoint on Dell E6400/E6500
Date: Mon, 3 Nov 2008 19:02:04 +0000 (UTC)	[thread overview]
Message-ID: <pan.2008.11.03.19.02.04@telenet.be> (raw)
In-Reply-To: 20081101044828.GC7527@cse.unsw.EDU.AU

On Sat, 01 Nov 2008 15:48:28 +1100, Matthew Chapman wrote:

> 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?

I can definitely confirm this problem, also on a Dell Latitutde E6400 with 
2.6.27 kernel.

dmesg contains errors like this:

psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 6
psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 - driver resynched.
psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 5
psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 1
psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 - driver resynched.
psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 5
psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 6
psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 3
psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 3
psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 3
psmouse.c: issuing reconnect request
input: PS/2 Generic Mouse as /class/input/input13

(Note also that this patch is still required to make this patch to make 
the synaptic driver recognize the touchpad:
http://lkml.org/lkml/2008/9/7/133 )

# cat /proc/bus/input/devices
I: Bus=0017 Vendor=0001 Product=0001 Version=0100
N: Name="Macintosh mouse button emulation"
P: Phys=
S: Sysfs=/class/input/input0
U: Uniq=
H: Handlers=mouse0 event0 
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/class/input/input1
U: Uniq=
H: Handlers=kbd event1 
B: EV=120013
B: KEY=800000000000 0 0 500f02102002 380303cf810d001 feffffdfffefffff 
ffffffffffffffff
B: MSC=10
B: LED=7

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/class/input/input4
U: Uniq=
H: Handlers=event4 
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button (CM)"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/class/input/input5
U: Uniq=
H: Handlers=kbd event5 
B: EV=3
B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name="Sleep Button (CM)"
P: Phys=PNP0C0E/button/input0
S: Sysfs=/class/input/input6
U: Uniq=
H: Handlers=kbd event6 
B: EV=3
B: KEY=4000 0 0

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=/video/input0
S: Sysfs=/class/input/input7
U: Uniq=
H: Handlers=kbd event7 
B: EV=3
B: KEY=3f000b00000000 0 0 0

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=/video/input0
S: Sysfs=/class/input/input8
U: Uniq=
H: Handlers=kbd event8 
B: EV=3
B: KEY=3f000b00000000 0 0 0

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=/video/input0
S: Sysfs=/class/input/input9
U: Uniq=
H: Handlers=kbd event9 
B: EV=3
B: KEY=3f000b00000000 0 0 0

I: Bus=0003 Vendor=413c Product=8157 Version=0111
N: Name="HID 413c:8157"
P: Phys=usb-0000:00:1a.0-1.1/input0
S: Sysfs=/class/input/input10
U: Uniq=
H: Handlers=kbd event10 
B: EV=120013
B: KEY=1000000000007 ff800000000007ff febeffdff3cfffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0001 Vendor=111d Product=76b2 Version=0001
N: Name="HDA Digital PCBeep"
P: Phys=card0/codec#0/beep0
S: Sysfs=/class/input/input12
U: Uniq=
H: Handlers=kbd event12 
B: EV=40001
B: SND=6

I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input13
U: Uniq=
H: Handlers=mouse1 event2 
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3


 
> 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.

-- 
Frederik Himpe

           reply	other threads:[~2008-11-03 19:02 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <20081101044828.GC7527@cse.unsw.EDU.AU>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=pan.2008.11.03.19.02.04@telenet.be \
    --to=fhimpe@telenet.be \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).