LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* ALPS touchpad with new Dell not recognised
@ 2007-08-01  7:46 William Pettersson
  2007-08-04 12:15 ` William Pettersson
  0 siblings, 1 reply; 7+ messages in thread
From: William Pettersson @ 2007-08-01  7:46 UTC (permalink / raw)
  To: linux-kernel

I've got a Dell Vostro 1400 here, which according to the Windows drivers
has an ALPS touchpad that I'm working on.  It has PS/2 pass through,
which means I can move the pointer around.  It also picks up (via
hardware I assume) quick double-taps as click-and-drag.  It however,
doesn't do multi-finger taps for middle and right mouse button.  It also
doesn't do side scrolling, which is the big one for me.

/proc/bus/inputs/devices lists the mouse as
I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input20
H: Handlers=mouse0 event4
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

I enabled debugging in the alps.c driver.  My touchpad "passes" the E6
test, but the E7 test it returns 0x73, 0x2, 0x50.  I've tried adding a
new model to the alps_model_info structure, with these numbers.
This made it be detected as an "Alps", but the behaviour was very
erratic, and kernel messages talked about the GlidePoint lost sync at
byte 1.

I'm not too familiar with the Alps driver, so I don't know exactly how
the byte0 or mask0 variables affect things.  I tried 0xff and 0xf8 as
they were two common options.

Is anyone familiar with the Alps driver, and able to help me work out
how to get this touchpad working?


William

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: ALPS touchpad with new Dell not recognised
  2007-08-01  7:46 ALPS touchpad with new Dell not recognised William Pettersson
@ 2007-08-04 12:15 ` William Pettersson
  2007-08-04 13:42   ` Matthew Garrett
  2007-08-04 19:05   ` Vojtech Pavlik
  0 siblings, 2 replies; 7+ messages in thread
From: William Pettersson @ 2007-08-04 12:15 UTC (permalink / raw)
  To: linux-kernel; +Cc: vojtech

[-- Attachment #1: Type: text/plain, Size: 736 bytes --]

Hi LKML,
Thanks to Vojtech for some advice, I finally got something happening
with this.  Turns out I had to add support for a new model in alps.c,
the attached file does this successfully for my laptop.  It'd be nice to
have others test it, but I am yet to find anyone else who has this same
laptop, with the same mouse issues I have.

With this patch, I now get a functioning touchpad, including side
scrolling, circle scrolling, corner taps etc.  However, I did have to
ramp the configuration numbers up significantly from my old Thinkpad
with its synaptics touchpad.  Minspeed is now 0.8 and maxspeed is 10. 
Also the VertScrollDelta is 10.  I don't know whether these numbers are
crazy high, or just normal for the Alps though.




[-- Attachment #2: alps.patch --]
[-- Type: text/plain, Size: 481 bytes --]

--- drivers/input/mouse/alps.c.old	2007-07-31 21:42:37.000000000 +1000
+++ drivers/input/mouse/alps.c	2007-08-04 21:45:43.000000000 +1000
@@ -53,6 +53,7 @@
 	{ { 0x20, 0x02, 0x0e },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* XXX */
 	{ { 0x22, 0x02, 0x0a },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT },
 	{ { 0x22, 0x02, 0x14 }, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude D600 */
+	{ { 0x73, 0x02, 0x50 }, 0x4f, 0x4f, ALPS_FW_BK_1 } /* Dell Vostro 1400 */
 };
 
 /*

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: ALPS touchpad with new Dell not recognised
  2007-08-04 12:15 ` William Pettersson
@ 2007-08-04 13:42   ` Matthew Garrett
  2007-08-04 19:05   ` Vojtech Pavlik
  1 sibling, 0 replies; 7+ messages in thread
From: Matthew Garrett @ 2007-08-04 13:42 UTC (permalink / raw)
  To: William Pettersson; +Cc: linux-kernel, vojtech

On Sat, Aug 04, 2007 at 10:15:54PM +1000, William Pettersson wrote:
> Hi LKML,
> Thanks to Vojtech for some advice, I finally got something happening
> with this.  Turns out I had to add support for a new model in alps.c,
> the attached file does this successfully for my laptop.  It'd be nice to
> have others test it, but I am yet to find anyone else who has this same
> laptop, with the same mouse issues I have.
> 
> With this patch, I now get a functioning touchpad, including side
> scrolling, circle scrolling, corner taps etc.  However, I did have to
> ramp the configuration numbers up significantly from my old Thinkpad
> with its synaptics touchpad.  Minspeed is now 0.8 and maxspeed is 10. 
> Also the VertScrollDelta is 10.  I don't know whether these numbers are
> crazy high, or just normal for the Alps though.

ALPS pads have different resolution to Synaptics ones, so need different 
default configuration. If you use the git version of the Xorg Synaptics 
driver then it'll automatically configure itself based on information 
from the kernel.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: ALPS touchpad with new Dell not recognised
  2007-08-04 12:15 ` William Pettersson
  2007-08-04 13:42   ` Matthew Garrett
@ 2007-08-04 19:05   ` Vojtech Pavlik
  2007-08-04 22:45     ` William Pettersson
  1 sibling, 1 reply; 7+ messages in thread
From: Vojtech Pavlik @ 2007-08-04 19:05 UTC (permalink / raw)
  To: William Pettersson; +Cc: linux-kernel, dtor

On Sat, Aug 04, 2007 at 10:15:54PM +1000, William Pettersson wrote:

> Hi LKML,
> Thanks to Vojtech for some advice, I finally got something happening
> with this.  Turns out I had to add support for a new model in alps.c,
> the attached file does this successfully for my laptop.  It'd be nice to
> have others test it, but I am yet to find anyone else who has this same
> laptop, with the same mouse issues I have.
> 
> With this patch, I now get a functioning touchpad, including side
> scrolling, circle scrolling, corner taps etc.  However, I did have to
> ramp the configuration numbers up significantly from my old Thinkpad
> with its synaptics touchpad.

That is normal. The ALPS's have very much different parameters -
sensitivity, resolution, etc., so that the settings aren't easily
comparable.

> Minspeed is now 0.8 and maxspeed is 10. 
> Also the VertScrollDelta is 10.  I don't know whether these numbers are
> crazy high, or just normal for the Alps though.

I don't remember exactly myself - I'm only interested in the low level
of the protocol - making sure the kernel delivers correctly decoded data
to userspace.

Please send the patch to Dmitry Torokhov, who is nowadays a maintainer
of this driver and the input subsystem. And don't forget to add a
description of the patch and a "Signed-off-by:" line.

I'm quite surprised you needed the value of 0x4f, I'd expect the highest
bit always set in the sync byte of the protocol. Can you send me (and
dmitry) the dump data you gathered using i8042.debug?

Thanks,
	Vojtech

> --- drivers/input/mouse/alps.c.old	2007-07-31 21:42:37.000000000 +1000
> +++ drivers/input/mouse/alps.c	2007-08-04 21:45:43.000000000 +1000
> @@ -53,6 +53,7 @@
>  	{ { 0x20, 0x02, 0x0e },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* XXX */
>  	{ { 0x22, 0x02, 0x0a },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT },
>  	{ { 0x22, 0x02, 0x14 }, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude D600 */
> +	{ { 0x73, 0x02, 0x50 }, 0x4f, 0x4f, ALPS_FW_BK_1 } /* Dell Vostro 1400 */
>  };

-- 
Vojtech Pavlik
Director SuSE Labs

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: ALPS touchpad with new Dell not recognised
  2007-08-04 19:05   ` Vojtech Pavlik
@ 2007-08-04 22:45     ` William Pettersson
  2007-08-05  8:02       ` Vojtech Pavlik
  2007-09-05  4:31       ` Dmitry Torokhov
  0 siblings, 2 replies; 7+ messages in thread
From: William Pettersson @ 2007-08-04 22:45 UTC (permalink / raw)
  To: dtor; +Cc: Vojtech Pavlik, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 3222 bytes --]

Hi,
This patch adds support for the Alps touchpad on my Dell Vostro 1400 to
the linux kernel.

Signed-off-by: William Pettersson <william.pettersson@gmail.com>

Vojtech, I went over my debug info again with your thoughts in mind, and
you were right.  The highest bit is always set in the sync byte of the
protocol.  It must have been luck that it didn't drop sync while it was
testing.  So a mask and bit of 0xCF does work.  I then decided to go
through the logs more thoroughly, and determine if I could make this
mask more rigid.  Turns out that a bit of 0xCF and a mask of 0xFF also
works.

I've also attached the output dumps.  The one labelled mouse.nosync.log
is the the one that I first worked on.  However, it was hard to see
where the start of the packets were, so I modified alps.c to give me the
output shown in alps-packets.log (I can submit this patch if you deem it
useful too).  It was once I did this that I saw straight away what the
bit0 had to be.  And then mouse.alps.log is just i8042.debug output
after my patch has been applied.

William

Vojtech Pavlik wrote:
> On Sat, Aug 04, 2007 at 10:15:54PM +1000, William Pettersson wrote:
>
>   
>> Hi LKML,
>> Thanks to Vojtech for some advice, I finally got something happening
>> with this.  Turns out I had to add support for a new model in alps.c,
>> the attached file does this successfully for my laptop.  It'd be nice to
>> have others test it, but I am yet to find anyone else who has this same
>> laptop, with the same mouse issues I have.
>>
>> With this patch, I now get a functioning touchpad, including side
>> scrolling, circle scrolling, corner taps etc.  However, I did have to
>> ramp the configuration numbers up significantly from my old Thinkpad
>> with its synaptics touchpad.
>>     
>
> That is normal. The ALPS's have very much different parameters -
> sensitivity, resolution, etc., so that the settings aren't easily
> comparable.
>
>   
>> Minspeed is now 0.8 and maxspeed is 10. 
>> Also the VertScrollDelta is 10.  I don't know whether these numbers are
>> crazy high, or just normal for the Alps though.
>>     
>
> I don't remember exactly myself - I'm only interested in the low level
> of the protocol - making sure the kernel delivers correctly decoded data
> to userspace.
>
> Please send the patch to Dmitry Torokhov, who is nowadays a maintainer
> of this driver and the input subsystem. And don't forget to add a
> description of the patch and a "Signed-off-by:" line.
>
> I'm quite surprised you needed the value of 0x4f, I'd expect the highest
> bit always set in the sync byte of the protocol. Can you send me (and
> dmitry) the dump data you gathered using i8042.debug?
>
> Thanks,
> 	Vojtech
>
>   
>> --- drivers/input/mouse/alps.c.old	2007-07-31 21:42:37.000000000 +1000
>> +++ drivers/input/mouse/alps.c	2007-08-04 21:45:43.000000000 +1000
>> @@ -53,6 +53,7 @@
>>  	{ { 0x20, 0x02, 0x0e },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* XXX */
>>  	{ { 0x22, 0x02, 0x0a },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT },
>>  	{ { 0x22, 0x02, 0x14 }, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude D600 */
>> +	{ { 0x73, 0x02, 0x50 }, 0x4f, 0x4f, ALPS_FW_BK_1 } /* Dell Vostro 1400 */
>>  };
>>     
>
>   

[-- Attachment #2: alps.patch --]
[-- Type: text/plain, Size: 481 bytes --]

--- drivers/input/mouse/alps.c.old	2007-07-31 21:42:37.000000000 +1000
+++ drivers/input/mouse/alps.c	2007-08-05 08:34:00.000000000 +1000
@@ -53,6 +53,7 @@
 	{ { 0x20, 0x02, 0x0e },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* XXX */
 	{ { 0x22, 0x02, 0x0a },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT },
 	{ { 0x22, 0x02, 0x14 }, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude D600 */
+	{ { 0x73, 0x02, 0x50 }, 0xcf, 0xff, ALPS_FW_BK_1 } /* Dell Vostro 1400 */
 };
 
 /*

[-- Attachment #3: mouse.nosync.log.bz2 --]
[-- Type: application/octet-stream, Size: 7481 bytes --]

[-- Attachment #4: mouse.alps.log.bz2 --]
[-- Type: application/octet-stream, Size: 11793 bytes --]

[-- Attachment #5: alps-packets.log.bz2 --]
[-- Type: application/octet-stream, Size: 5043 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: ALPS touchpad with new Dell not recognised
  2007-08-04 22:45     ` William Pettersson
@ 2007-08-05  8:02       ` Vojtech Pavlik
  2007-09-05  4:31       ` Dmitry Torokhov
  1 sibling, 0 replies; 7+ messages in thread
From: Vojtech Pavlik @ 2007-08-05  8:02 UTC (permalink / raw)
  To: William Pettersson; +Cc: dtor, linux-kernel

On Sun, Aug 05, 2007 at 08:45:29AM +1000, William Pettersson wrote:
> Hi,
> This patch adds support for the Alps touchpad on my Dell Vostro 1400 to
> the linux kernel.
> 
> Signed-off-by: William Pettersson <william.pettersson@gmail.com>
> 
> Vojtech, I went over my debug info again with your thoughts in mind, and
> you were right.  The highest bit is always set in the sync byte of the
> protocol.  It must have been luck that it didn't drop sync while it was
> testing.  So a mask and bit of 0xCF does work.  I then decided to go
> through the logs more thoroughly, and determine if I could make this
> mask more rigid.  Turns out that a bit of 0xCF and a mask of 0xFF also
> works.

Just one more question: Have you checked that the 0xcf doesn't change
when you press any of the ALPS buttons? Including those associated with
the passthrough? Some bits in the sync byte might still be mapped to
these.

> I've also attached the output dumps.  The one labelled mouse.nosync.log
> is the the one that I first worked on.  However, it was hard to see
> where the start of the packets were, so I modified alps.c to give me the
> output shown in alps-packets.log (I can submit this patch if you deem it
> useful too).  It was once I did this that I saw straight away what the
> bit0 had to be.  And then mouse.alps.log is just i8042.debug output
> after my patch has been applied.
> 
> William
> 
> Vojtech Pavlik wrote:
> > On Sat, Aug 04, 2007 at 10:15:54PM +1000, William Pettersson wrote:
> >
> >   
> >> Hi LKML,
> >> Thanks to Vojtech for some advice, I finally got something happening
> >> with this.  Turns out I had to add support for a new model in alps.c,
> >> the attached file does this successfully for my laptop.  It'd be nice to
> >> have others test it, but I am yet to find anyone else who has this same
> >> laptop, with the same mouse issues I have.
> >>
> >> With this patch, I now get a functioning touchpad, including side
> >> scrolling, circle scrolling, corner taps etc.  However, I did have to
> >> ramp the configuration numbers up significantly from my old Thinkpad
> >> with its synaptics touchpad.
> >>     
> >
> > That is normal. The ALPS's have very much different parameters -
> > sensitivity, resolution, etc., so that the settings aren't easily
> > comparable.
> >
> >   
> >> Minspeed is now 0.8 and maxspeed is 10. 
> >> Also the VertScrollDelta is 10.  I don't know whether these numbers are
> >> crazy high, or just normal for the Alps though.
> >>     
> >
> > I don't remember exactly myself - I'm only interested in the low level
> > of the protocol - making sure the kernel delivers correctly decoded data
> > to userspace.
> >
> > Please send the patch to Dmitry Torokhov, who is nowadays a maintainer
> > of this driver and the input subsystem. And don't forget to add a
> > description of the patch and a "Signed-off-by:" line.
> >
> > I'm quite surprised you needed the value of 0x4f, I'd expect the highest
> > bit always set in the sync byte of the protocol. Can you send me (and
> > dmitry) the dump data you gathered using i8042.debug?
> >
> > Thanks,
> > 	Vojtech
> >
> >   
> >> --- drivers/input/mouse/alps.c.old	2007-07-31 21:42:37.000000000 +1000
> >> +++ drivers/input/mouse/alps.c	2007-08-04 21:45:43.000000000 +1000
> >> @@ -53,6 +53,7 @@
> >>  	{ { 0x20, 0x02, 0x0e },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* XXX */
> >>  	{ { 0x22, 0x02, 0x0a },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT },
> >>  	{ { 0x22, 0x02, 0x14 }, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude D600 */
> >> +	{ { 0x73, 0x02, 0x50 }, 0x4f, 0x4f, ALPS_FW_BK_1 } /* Dell Vostro 1400 */
> >>  };
> >>     
> >
> >   

> --- drivers/input/mouse/alps.c.old	2007-07-31 21:42:37.000000000 +1000
> +++ drivers/input/mouse/alps.c	2007-08-05 08:34:00.000000000 +1000
> @@ -53,6 +53,7 @@
>  	{ { 0x20, 0x02, 0x0e },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* XXX */
>  	{ { 0x22, 0x02, 0x0a },	0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT },
>  	{ { 0x22, 0x02, 0x14 }, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT }, /* Dell Latitude D600 */
> +	{ { 0x73, 0x02, 0x50 }, 0xcf, 0xff, ALPS_FW_BK_1 } /* Dell Vostro 1400 */
>  };
>  
>  /*





-- 
Vojtech Pavlik
Director SuSE Labs

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: ALPS touchpad with new Dell not recognised
  2007-08-04 22:45     ` William Pettersson
  2007-08-05  8:02       ` Vojtech Pavlik
@ 2007-09-05  4:31       ` Dmitry Torokhov
  1 sibling, 0 replies; 7+ messages in thread
From: Dmitry Torokhov @ 2007-09-05  4:31 UTC (permalink / raw)
  To: William Pettersson; +Cc: Vojtech Pavlik, linux-kernel

Hi,

On Saturday 04 August 2007 18:45, William Pettersson wrote:
> Hi,
> This patch adds support for the Alps touchpad on my Dell Vostro 1400 to
> the linux kernel.
> 
> Signed-off-by: William Pettersson <william.pettersson@gmail.com>

Applied, thank you William.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-09-05  4:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-01  7:46 ALPS touchpad with new Dell not recognised William Pettersson
2007-08-04 12:15 ` William Pettersson
2007-08-04 13:42   ` Matthew Garrett
2007-08-04 19:05   ` Vojtech Pavlik
2007-08-04 22:45     ` William Pettersson
2007-08-05  8:02       ` Vojtech Pavlik
2007-09-05  4:31       ` Dmitry Torokhov

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