Bug 45201

Summary: Dell Latitude E6430 touch-pad not supported
Product: Drivers Reporter: Ben Gamari (bgamari)
Component: Input DevicesAssignee: drivers_input-devices
Status: RESOLVED INSUFFICIENT_DATA    
Severity: normal CC: alan, gawan7, jclift, joep.w.jansen, justin, ml-kernel, nacho.resa, pbludov, pfoo07, simondani91, xgdgsc, yuriev
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.8 Subsystem:
Regression: No Bisected commit-id:

Description Ben Gamari 2012-07-27 14:17:04 UTC
The Dell Latitude E6430 has a Dualpoint Alps touchpad supporting multitouch gestures. The psmouse driver does not know about this device by default, although adding its signature ({0x73, 0x03, 0x0a}) and command_mode_resp (0x1d) to alps_model_data with the v3 protocol convinces the driver to create two devices.

Unfortunately, it seems that this device doesn't speak the v3 protocol as it only gives me bare PS/2 data. Moreover, the driver fails to bring the device into absolute mode when using the v4 protocol. For this reason, it seems there is likely yet another protocol variation in the Alps world.  I'm trying to get multitouch working under a virtualized Windows 7 installation so I can get a protocol trace[1] but unfortunately this has been harder than expected.


[1] http://swapspace.forshee.me/2011/11/touchpad-protocol-reverse-engineering.html
Comment 1 Joep Jansen 2012-07-27 19:22:12 UTC
I have a Dell Inspiron 17R SE, with the same issue.

The touchpad has a E7 signature {0x73, 0x03, 0x50}. 

I was able to get it recognized by modifying the psmouse-alps-0.11 driver, but it stays in PS/2 mouse mode.


I followed the instructions from [l] in the previous post.
When booting Windows 7, the logger reports some traffic to/from the touchpad, but it never responds. Not with the PS/2 mouse driver, and not with the Dell ALPS driver for windows 7 (Input_ALPS_W7_A00_Setup-8HWGC_ZPE).

Here is the logged traffic:

S ff
R fa
R aa
R 00
S ff
R fa
R aa
R 00
S f2
R fa
R 00
S e8
R fa
S ff
R fa
R aa
R 00
S f2
R fa
R 00
S e8
R fa
S ff
R fa
R aa
R 00
S f2
R fa
R 00
S e8
R fa
Comment 2 Ben Gamari 2012-07-27 19:37:13 UTC
This[1] is a relevant thread I started on linux-input.

[1] http://www.spinics.net/lists/linux-input/msg21728.html
Comment 3 gawan 2012-08-08 11:20:36 UTC
I have same problem with dell e6530
Comment 4 Ignacio Casal 2012-08-09 07:04:05 UTC
Same with dell precision M4700
Comment 5 Ignacio Casal 2012-08-09 13:20:08 UTC
Some more information, I decided to hack a bit on the alps.c code and adding the next lines make the touchpad to be detected:
{ { 0x73, 0x03, 0x0a }, 0x00, ALPS_PROTO_V2, 0xcf, 0xcf,
		ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED },

nacho@winterfell mouse]$ xinput -list⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ DualPoint Stick                         	id=12	[slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS DualPoint TouchPad        	id=14	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ Laptop_Integrated_Webcam_E4HD           	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=11	[slave  keyboard (3)]
    ↳ Dell WMI hotkeys                        	id=13	[slave  keyboard (3)]

Although it does not seem to make any different. Maybe due to the magic 0xcf, 0xcf which I don't really know what to put there.

As you can see it is detected when using the protocol version 2, but it is not detected with the v3 and neither with the v4.

So maybe this new protocol version is some kind of extension from the version 2?
Comment 6 pfoo07 2012-08-30 20:31:38 UTC
For information: Ben Gamari hacked a working alps driver for his dell latitude e6430 laptop.
His driver is working on my e6530.

See http://www.mail-archive.com/linux-input@vger.kernel.org/msg00808.html
and his patch https://github.com/bgamari/linux/commit/1527416a726b823225f97c4d733dcdd9df7f50d6
Comment 7 Pavel Bludov 2012-10-05 05:34:52 UTC
(In reply to comment #1)

> Here is the logged traffic:
> 
> S ff
> R fa
> R aa
> R 00
> S ff
> R fa
> R aa
> R 00
> S f2
> R fa
> R 00
> S e8
> R fa

Joep, you should comment out these lines from serio_pt_write_thread routine:

            /* Seeing some odd data, just ignore it. May be due to races. */
            if (byte < 0x80)
                continue; 

rebuild vbox/qemu and try to capture the traffic again.
Comment 8 gsc 2012-11-12 13:00:37 UTC
I confirm the psmouse-alps-dst-0.4 provided by  Dave Turvene (dturvene)  (http://www.dahetral.com/public-download)  works great on a Dell inspiron 17r se. 

Some other confimations and information can be found at https://bugs.launchpad.net/ubuntu/+source/linux/+bug/606238 .

Hope this be merged soon.
Comment 9 Dániel Simon 2013-05-02 08:03:58 UTC
This bug still exists in 3.8.
Comment 10 Justin Clift 2014-01-16 10:21:40 UTC
Hi all,

As a data point, Yunkang Tang / Tommy Will from ALPS has written an official driver for the touchpad in the Inspiron 17R SE.

It's been accepted into the kernel by the linux-input guys, are should be in the next release of the Linux kernel (3.13):

  http://www.spinics.net/lists/linux-input/msg28820.html

Fedora has backported the patch into Fedora 19, 20, and 21, and it's working well.

Hopefully that helps. :)

Regards and best wishes,

Justin Clift
Comment 11 Justin Clift 2014-01-20 18:01:51 UTC
Following up on this, Yunkang Tang / Tommy Will from ALPS tested Ubuntu 13.10 with a laptop using the same model of touchpad as the Latitude E6430.

For him it worked ok, being seen as a touchpad with multi-touch gesture supported and so on.

Ben, do you have the time/inclination to test out kernel 3.11.* or Ubuntu 13.10 with your E6430, if you still have that laptop?
Comment 12 Yuriev Olmos 2014-03-06 17:50:55 UTC
I have a Latitude E6430 with Ubuntu 13.10 and the only multi touch gesture that works is the two finger scroll, no 3-finger gestures of 2-finger pinch/zoom actions are recognized. The pointer is very sensible too. I was looking for a better driver and found this bug.

This is the lsinput output for the touchpad device:

/dev/input/event6
   bustype : BUS_I8042
   vendor  : 0x2
   product : 0x8
   version : 768
   name    : "AlpsPS/2 ALPS DualPoint TouchPad"
   phys    : "isa0060/serio1/input0"
   bits ev : EV_SYN EV_KEY EV_ABS
Comment 13 Justin Clift 2014-04-20 06:18:56 UTC
Hi Yuriev,

Just now saw your bug report comment on kernel.org about the touchpad
input:

  https://bugzilla.kernel.org/show_bug.cgi?id=45201#c12

Out of curiosity, which kernel version is running on your Ubuntu?

Asking because kernel version 3.13 started to introduce much better
ALPS touchpad support, further improved with 3.14.

If your kernel isn't one of those, is there a way you could somehow
try 3.13 or 3.14 or later, to see if that works?

Regards and best wishes,

Justin Clift