Bug 43931
Summary: | Touchpad recognized as mouse on Dell Latitude XT | ||
---|---|---|---|
Product: | Drivers | Reporter: | Roman Šmakal (schmakerisko) |
Component: | Input Devices | Assignee: | drivers_input-devices |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | alan, marcos.souza.org, whitelynx |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.11 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Roman Šmakal
2012-06-27 18:40:28 UTC
I have the same laptop, and am running into the same issue. # uname -a Linux archsd 3.11.1-2-ARCH #1 SMP PREEMPT Sun Sep 22 19:45:00 CEST 2013 x86_64 GNU/Linux I also noticed that I get the following errors from the 'psmouse' driver in 'dmesg': # dmesg | grep psmouse [ 10.742819] psmouse serio1: alps: Unknown ALPS touchpad: E7=73 00 14, EC=10 00 64 [ 12.856723] psmouse serio1: Failed to enable mouse on isa0060/serio1 This issue was mentioned by alexromanescu (and then later picked up by libondam-0) on the Ubuntu bug at https://bugs.launchpad.net/ubuntu/+source/linux/+bug/606238?comments=all; it doesn't seem like any conclusion was reached there, but it was suggested that adding the following line to alps_model_data[] in 'alps.c' at least allowed the touchpad to be detected, and got two-finger scrolling working (though the trackpoint stick was broken by this): { { 0x73, 0x00, 0x14 }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_DUALPOINT | ALPS_FW_BK_2 }, /* Dell Latitude XT */ I'm going to try making this change and see what state it leaves the touchpad in. Adding that line, recompiling the driver, and reloading it did cause it to be detected correctly, and to get picked up by the X11 'synaptics' driver. However, the pointer stick is still in the same state described in the Ubuntu bug; when used, the stick causes the pointer to jump around the screen randomly, and to send random click events. If the stick isn't used, the touchpad itself seems to be working well for the most part; the biggest exception is two-finger scrolling, which seems to be completely inoperable, even when trying to use two-finger emulation. On the other hand, edge scrolling, middle-click emulation, etc. work fine. I did notice that when looking at the output of `xinput query-state 'AlpsPS/2 ALPS DualPoint TouchPad'`, the last 2 valuators never change their values: # xinput query-state 'AlpsPS/2 ALPS DualPoint TouchPad' 2 classes : ButtonClass button[1]=up button[2]=up button[3]=up button[4]=up button[5]=up button[6]=up button[7]=up button[8]=up button[9]=up button[10]=up button[11]=up button[12]=up ValuatorClass Mode=Relative Proximity=In valuator[0]=752 valuator[1]=118 valuator[2]=0 valuator[3]=-79 In my testing, it seems that the value reported by evdev for ABS_PRESSURE is acting more like width than pressure; it is pretty consistently below 80 whenever using one finger, and over 100 whenever using two fingers. Nothing reported by evtest (or via evdev events when using python2-evdev) seems to actually correspond to pressure; is it possible we just aren't passing the pressure data from the touchpad on to evdev? Per Pali's email[1], this is fixed since 2013. [1] |