Thread (7 messages) 7 messages, 2 authors, 2025-09-24

Re: Touchpad multitouch leaves ghost fingers

flat view

From: Benjamin Tissoires <bentiss@kernel.org>
Date: 2025-09-24 08:44:13
Also in: lkml

On Sep 24 2025, Yinon Burgansky wrote:
On Tue, Sep 23, 2025 at 7:30 PM Benjamin Tissoires [off-list ref] wrote:
quoted
Got something out with https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/merge_requests/204
that seems to solve your case on the hid-recorder you provided.
Thank you so much!
The install command didn't work properly for me:
$ ./install.sh "*DLL0945*"
$ tree /usr/local/lib/firmware
/usr/local/lib/firmware
└── hid
    └── bpf
        └── 0011-Synaptics__DLL0945.bpf.o
$ reboot
$ sudo tree /sys/fs/bpf
/sys/fs/bpf
0 directories, 0 files
oops, yes, my bad. I forgot to put the correct group on the device
(multitouch_win_8 instead of generic). I've force pushed a new version,
so please redownload and reinstall it.

I tried to add it manually and it seems to work now :)
$ sudo udev-hid-bpf add /sys/bus/hid/devices/0018:06CB:CE26.0005
/usr/local/lib/firmware/hid/bpf/0011-Synaptics__DLL0945.bpf.o
$ sudo tree /sys/fs/bpf
/sys/fs/bpf
└── hid
    └── 0018_06CB_CE26_0005
        └── 0011-Synaptics__DLL0945_bpf
            └── synaptics_dll0945

4 directories, 1 file
But I have to do it manually every time.
Not sure what's wrong, maybe the added udev rule:
$ cat /etc/udev/rules.d/81-hid-bpf.rules
ACTION!="add|remove|bind", GOTO="hid_bpf_end"
SUBSYSTEM!="hid", GOTO="hid_bpf_end"

# We lookup the hwdb during bind to set the property, but we don't do
anything else
IMPORT{builtin}="hwdb --subsystem=hid --lookup-prefix=hid-bpf:"
#ACTION=="add", ENV{.HID_BPF}=="1",
RUN{program}+="@@BINDIR@@/udev-hid-bpf add $sys$devpath"
#MARKER
ACTION=="add", ENV{.HID_BPF}=="1",
RUN{program}+="/usr/local/bin/udev-hid-bpf add $sys$devpath"
#ACTION=="remove", ENV{.HID_BPF}=="1",
RUN{program}+="@@BINDIR@@/udev-hid-bpf remove $sys$devpath"
#MARKER
ACTION=="remove", ENV{.HID_BPF}=="1",
RUN{program}+="/usr/local/bin/udev-hid-bpf remove $sys$devpath"

LABEL="hid_bpf_end"
The udev rule is fine, the hwdb is not. If you look at
/etc/udev/hwdb.d/81-hid-bpf-testing.hwdb you'll see that it shows:

hid-bpf:hid:b0018g0001v000006CBp0000CE26
  HID_BPF_T_002=0011-Synaptics__DLL0945.bpf.o
  .HID_BPF=1

But if you run `cat /sys/bus/hid/devices/0018:06CB:CE26.*/modalias`
you'll see that you have something like:

hid:b0018g0004v000006CBp0000CE26

the 'g0004' is not correct and therefore the qutobinding doesn't work :(
this is the udevadm info (after reboot, it is sometimes hidraw3
sometimes hidraw4):
$  udevadm info --query=all --name=/dev/hidraw4
P: /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-DLL0945:00/0018:06CB:CE26.0005/hidraw/hidraw4
M: hidraw4
R: 4
J: c242:4
U: hidraw
D: c 242:4
N: hidraw4
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-DLL0945:00/0018:06CB:CE26.0005/hidraw/hidraw4
E: DEVNAME=/dev/hidraw4
E: MAJOR=242
E: MINOR=4
E: SUBSYSTEM=hidraw
E: USEC_INITIALIZED=3980846
E: ID_VENDOR_FROM_DATABASE=Dell Inc
E: ID_PATH=pci-0000:00:15.1-platform-i2c_designware.1
E: ID_PATH_TAG=pci-0000_00_15_1-platform-i2c_designware_1
E: ID_FOR_SEAT=hidraw-pci-0000_00_15_1-platform-i2c_designware_1
E: TAGS=:seat:
E: CURRENT_TAGS=:seat:
Thank you for the quick fix, it seems to work great so far!
\o/.

Now I need to make the kernel patch. Ideally I'd like you to test it,
but worse case I can just replay the recording as it seems to be enough.

Cheers,
Benjamin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help