Comment 50 for bug 1887190

Revision history for this message
Coiby Xu (coiby) wrote :

Although Elan Touchpad is listed in the output of xinput, "0" in "hid_elan 16384 0" shows hid_elan is not being used. Is there an entry named "*:04F3:3140.*" under /sys/bus/hid/drivers/hid-elan/?

> plus I found that this device is already defined in hid-elan.c

I couldn't find the string 0x3140. Do you mean the device is defined in another way?

Yesterday, I used evtest to monitor the Synaptics touchpad and was surprised to find when hid_multitouch is taking over the device, multiple fingers (up to 4) touching could be detected,

```
$ sudo evtest
/dev/input/event14: MSFT0001:00 06CB:7F28 Mouse
/dev/input/event15: MSFT0001:00 06CB:7F28 Touchpad
Select the device event number [0-21]: 15
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x6cb product 0x7f28 version 0x100
Input device name: "MSFT0001:00 06CB:7F28 Touchpad"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 272 (BTN_LEFT)
    Event code 325 (BTN_TOOL_FINGER)
    Event code 328 (BTN_TOOL_QUINTTAP)
    Event code 330 (BTN_TOUCH)
    Event code 333 (BTN_TOOL_DOUBLETAP)
    Event code 334 (BTN_TOOL_TRIPLETAP)
    Event code 335 (BTN_TOOL_QUADTAP)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value 0
      Min 0
      Max 1224
      Resolution 12
    Event code 1 (ABS_Y)
      Value 0
      Min 0
      Max 804
      Resolution 12
    Event code 47 (ABS_MT_SLOT)
      Value 0
      Min 0
      Max 4
    Event code 53 (ABS_MT_POSITION_X)
      Value 0
      Min 0
      Max 1224
      Resolution 12
    Event code 54 (ABS_MT_POSITION_Y)
      Value 0
      Min 0
      Max 804
      Resolution 12
    Event code 55 (ABS_MT_TOOL_TYPE)
      Value 0
      Min 0
      Max 2
    Event code 57 (ABS_MT_TRACKING_ID)
      Value 0
      Min 0
      Max 65535
  Event type 4 (EV_MSC)
    Event code 5 (MSC_TIMESTAMP)
Properties:
  Property type 0 (INPUT_PROP_POINTER)
  Property type 2 (INPUT_PROP_BUTTONPAD)
Testing ... (interrupt to exit)
Event: time 1597225994.180980, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1597225994.180980, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 765
Event: time 1597225994.180980, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 220
Event: time 1597225994.180980, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1597225994.180980, type 1 (EV_KEY), code 325 (BTN_TOOL_FINGER), value 1
Event: time 1597225994.180980, type 3 (EV_ABS), code 0 (ABS_X), value 765
Event: time 1597225994.180980, type 3 (EV_ABS), code 1 (ABS_Y), value 220
Event: time 1597225994.180980, type 4 (EV_MSC), code 5 (MSC_TIMESTAMP), value 0
Event: time 1597225994.180980, -------------- SYN_REPORT ------------
```

The only issue is the pointer won't move when I my fingers move on the touchpad. Compared with a working touchpad, the only difference is the lack of ABS_PRESSURE events. If I use hid-rmi, these ABS_PRESSURE events would be generated. It seems ABS_PRESSURE events are needed to make the pointer move. If I could let hid_multitouch collect ABS_PRESSURE events, then the touchpad could work.

So I'm curious if hid_multitouch also handle your touchpad device by default, could you run `sudo evtest` on the device to see what kinds of events could be generated?