Comment 170 for bug 606238

Revision history for this message
Dave Turvene (dturvene) wrote : Re: [Bug 606238] Re: synaptic touchpad not recognized on dell latitude e6510 and others

Vreixo - responses inline.

On 09/19/2012 09:25 AM, Vreixo Formoso wrote:
> I have been testing last Dave driver on my Inspiron 17R SE. First, I
> have change the line added by Dave on alps_model_data to
>
> { { 0x73, 0x03, 0x50 }, 0x02, ALPS_PROTO_V6, 0xc8, 0xc8, 0 },
>
> because the command mode resp for my touchpad is 0x02 and ALPS_DUALPOINT
> flag makes no sense as this touchpad has not trackstick.
Good to know. I'll drop the ALPS_DUALPOINT for the next driver rev.
>
> After loading the module, it seems the touchpad is detected:
>
> psmouse serio1: alps: E6 report: 00 00 64
> psmouse serio1: alps: E7 report: 73 03 50
> psmouse serio1: alps: alps_enter_command_mode: 73 02 02
> psmouse serio1: alps: ver=5, rsp=02
> psmouse serio1: alps: E6 report: 00 00 64
> psmouse serio1: alps: E7 report: 73 03 50
> psmouse serio1: alps: alps_enter_command_mode: 73 02 02
> psmouse serio1: alps: ver=5, rsp=02
> psmouse serio1: alps: ID 0: 00
> psmouse serio1: alps: 00 00 64: 00 00 64
> psmouse serio1: alps: ID 0: 00
> psmouse serio1: alps: 2-ID 0: c8
> psmouse serio1: alps: 73 03 50: 73 03 50
> psmouse serio1: alps: alps_enter_command_mode: 73 02 02
> psmouse serio1: alps: Addr ec
> psmouse serio1: alps: 0x0008=02
> psmouse serio1: alps: Match bf 1a 04: bf 01 50
> psmouse serio1: alps: Match 89 95 84: 78 79 7b
> psmouse serio1: alps: alps_enter_command_mode: 73 02 02
> psmouse serio1: alps: alps_init: keybit=159FD030
> input: PS/2 Mouse as /devices/platform/i8042/serio1/input/input18
> psmouse serio1: alps: alps_init: success
> input: AlpsPS/2 ALPS GlidePoint as /devices/platform/i8042/serio1/input/input19
For my init, "Match" indicates an expected response to the bytes before
the colon. Yours do not match. It may not be a problem.
>
> But it bothers me that both a PS/2 mouse and the AlpsPS/2 touchpad are
> detected. What is the reason for that? Any ideas?
The alps touchpad is an extension of the ps2 protocol. Linux uses a
tree structure to find devices.
>
> In any case, the touchpad does not work. However, when I touch the
> touchpad the events are received by the driver and logged:
>
> psmouse serio1: alps: d: c8 4c 3e 8 24 11 = 588 318 17
> psmouse serio1: alps: d: c8 4c 3e 8 24 11 = 588 318 17
>
> x, y and z values make sense according to how I press the touchpad, so the packet format seems similar. However, the mouse pointer doesn't move on the screen, and clicks in the touchpad buttons are not logged.
> I guess there is some trouble with the initialization sequence, maybe it is different for my touchpad.
>
> For completeness, I paste here the related X logs, if you have any idea
> about how to fix this I would be glad to test it. I would like to use
> the virtual machine stuff to reverse engineering the initialization
> sequence, but I have no time right now.
You're getting the 6-byte alps packets (standard ps2 is 3-bytes) so the
driver is working. I don't log button clicks. The X logs look good
also - consistent with what I see. Base on that the driver is working
and I suspect that something in the X linkage or X configuration is not
working.

Not to point out the obvious but: did you enable the mouse?

Do "xinput --list". For the ps2 and alps device ids, make sure "Device
Enabled" (prop 132) is set to "1" using "xinput list-props <devid>". If
132 is set to "0" the device is disabled. You should be able to use
Fn-F3 to toggle 132.

I'll document how to reverse engineer the alps interface in the next
release. It's fairly time consuming.