Discussion:
evdev + ps/2 dell touchpad weirdness
(too old to reply)
Johannes Lundberg
2018-05-31 07:45:07 UTC
Permalink
Hi

I could swear this was working a couple of months ago but since installing
new kernel+world a couple of times and revisiting using Weston or X with
udev+evdev+libinput I can't get all the events.

Using libinput-debug-events on my dell laptop touchpad (psm driver with
hw.psm.synaptics=1) I get events for two finger scroll Y (no horizontal
scroll but that's another issue), single finger tap (left mouse), two
finger tap (right mouse) but not single finger movements, that is I can't
move the mouse cursor...

Changing to trackpoint, elantech, etc makes no difference.

All packages are from stock ports.
Johannes Lundberg
2018-05-31 08:32:16 UTC
Permalink
Post by Johannes Lundberg
Hi
I could swear this was working a couple of months ago but since installing
new kernel+world a couple of times and revisiting using Weston or X with
udev+evdev+libinput I can't get all the events.
Using libinput-debug-events on my dell laptop touchpad (psm driver with
hw.psm.synaptics=1) I get events for two finger scroll Y (no horizontal
scroll but that's another issue), single finger tap (left mouse), two
finger tap (right mouse) but not single finger movements, that is I can't
move the mouse cursor...
Changing to trackpoint, elantech, etc makes no difference.
All packages are from stock ports.
To add more information. With PSM_DEBUG in kernel I can see that I'm
getting interrupts for single finger movement

psmintr: 38 f4 fd 00 00 00
psmintr: 38 f4 ff 00 00 00
psmintr: 18 f5 00 00 00 00
psmintr: 18 f5 00 00 00 00
psmintr: 18 f5 03 00 00 00
psmintr: 18 f7 04 00 00 00
psmintr: 18 f9 05 00 00 00
Johannes Lundberg
2018-05-31 11:39:48 UTC
Permalink
Post by Johannes Lundberg
Post by Johannes Lundberg
Hi
I could swear this was working a couple of months ago but since
installing new kernel+world a couple of times and revisiting using Weston
or X with udev+evdev+libinput I can't get all the events.
Using libinput-debug-events on my dell laptop touchpad (psm driver with
hw.psm.synaptics=1) I get events for two finger scroll Y (no horizontal
scroll but that's another issue), single finger tap (left mouse), two
finger tap (right mouse) but not single finger movements, that is I can't
move the mouse cursor...
Changing to trackpoint, elantech, etc makes no difference.
All packages are from stock ports.
To add more information. With PSM_DEBUG in kernel I can see that I'm
getting interrupts for single finger movement
psmintr: 38 f4 fd 00 00 00
psmintr: 38 f4 ff 00 00 00
psmintr: 18 f5 00 00 00 00
psmintr: 18 f5 00 00 00 00
psmintr: 18 f5 03 00 00 00
psmintr: 18 f7 04 00 00 00
psmintr: 18 f9 05 00 00 00
Ok got the fix. Can someone commit?

EV_REL is for pushing events. For evdev_push_rel(), use REL_{axis}.

diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c
index 0b6a061e15b..227b73e7088 100644
--- a/sys/dev/atkbdc/psm.c
+++ b/sys/dev/atkbdc/psm.c
@@ -4966,8 +4966,8 @@ psmsoftintr(void *arg)
if (evdev_rcpt_mask & EVDEV_RCPT_HW_MOUSE &&
sc->hw.model != MOUSE_MODEL_ELANTECH &&
sc->hw.model != MOUSE_MODEL_SYNAPTICS) {
- evdev_push_rel(sc->evdev_r, EV_REL, x);
- evdev_push_rel(sc->evdev_r, EV_REL, -y);
+ evdev_push_rel(sc->evdev_r, REL_X, x);
+ evdev_push_rel(sc->evdev_r, REL_Y, -y);

switch (sc->hw.model) {
case MOUSE_MODEL_EXPLORER:
Hans Petter Selasky
2018-05-31 12:11:08 UTC
Permalink
Post by Johannes Lundberg
EV_REL is for pushing events. For evdev_push_rel(), use REL_{axis}.
Does this work:
https://svnweb.freebsd.org/changeset/base/334422

--HPS
Johannes Lundberg
2018-05-31 12:13:37 UTC
Permalink
Post by Hans Petter Selasky
Post by Johannes Lundberg
EV_REL is for pushing events. For evdev_push_rel(), use REL_{axis}.
https://svnweb.freebsd.org/changeset/base/334422
Perfect. Thanks!
Post by Hans Petter Selasky
--HPS
Loading...