Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 May 2018 12:39:48 +0100
From:      Johannes Lundberg <johalun0@gmail.com>
To:        freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: evdev + ps/2 dell touchpad weirdness
Message-ID:  <CAECmPwvAMvpptWAUEtQg_82-muY912NYieuKFOkV2d49N6DDwQ@mail.gmail.com>
In-Reply-To: <CAECmPwvQ_t1gLLWadU1URKXPP8vtSnyij908C7M8b252WQHK7Q@mail.gmail.com>
References:  <CAECmPwvOpmLN-wv762CZ7UoMucvFQ3dor6X6ZnqMqBJ3nDATxA@mail.gmail.com> <CAECmPwvQ_t1gLLWadU1URKXPP8vtSnyij908C7M8b252WQHK7Q@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, May 31, 2018 at 9:32 AM Johannes Lundberg <johalun0@gmail.com>
wrote:

>
>
> On Thu, May 31, 2018 at 8:45 AM Johannes Lundberg <johalun0@gmail.com>
> wrote:
>
>> 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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAECmPwvAMvpptWAUEtQg_82-muY912NYieuKFOkV2d49N6DDwQ>