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?
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,
``` DOUBLETAP) TRIPLETAP) TRACKING_ ID) PROP_POINTER) PROP_BUTTONPAD) TRACKING_ ID), value 0 POSITION_ X), value 765 POSITION_ Y), value 220
$ 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_
Event code 334 (BTN_TOOL_
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_
Value 0
Min 0
Max 65535
Event type 4 (EV_MSC)
Event code 5 (MSC_TIMESTAMP)
Properties:
Property type 0 (INPUT_
Property type 2 (INPUT_
Testing ... (interrupt to exit)
Event: time 1597225994.180980, type 3 (EV_ABS), code 57 (ABS_MT_
Event: time 1597225994.180980, type 3 (EV_ABS), code 53 (ABS_MT_
Event: time 1597225994.180980, type 3 (EV_ABS), code 54 (ABS_MT_
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?