Thread (21 messages) 21 messages, 6 authors, 2018-01-22

Re: [PATCH] Revert "Input: trackpoint - add new trackpoint firmware ID"

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2018-01-09 00:40:38

Hi Sebastian,

On Mon, Jan 08, 2018 at 04:11:01PM +0100, Sebastian Schmidt wrote:
Hi Dmitry,

On Sat, Jan 06, 2018 at 10:52:01PM -0800, Dmitry Torokhov wrote:
quoted
Guys, could you please try the patch below? It will not solve the
"speed" issue on 0x01 devices, but hopefully we won't be exposing
non-existing controls on others.
Thanks for looking into this. Which speed issue on 0x01 devices? I
thought those were the legacy ones that used to work and still do as
ever.

I've tried your (slightly modified, see below) patch and the trackpoint
now gets apparently[1] correctly detected as "psmouse serio2:
trackpoint: Elan TrackPoint firmware: 0x04, buttons: 3/3". However, I
still have the feeling that it's a lot more sensitive (or faster?) than
with the regular PS/2 driver - even with libinput accel speed turned to
-1. I don't know how I could measure this objectively, but there must be
some difference between the trackpoint driver and the regular one. Is it
maybe an init sequence that causes it to report more sensitively, or a
different resolution, or ...? I really have no idea how mice work. :)
Hmm.. Can you try writing different values to "sensitivity" attribute
and let me know if this changes behavior. Try 0x66, 0x73, 0x80, 0x8F,
0xA0, 0xB3, 0xC9, 0xE1, 0xFC values (smaller should be less sensitive).
I believe we try to program it to 0x80 by default.

Also, I think libinput/udev is trying to "normalize" trackstick feel,
see /lib/udev/hwdb.d/70-pointingstick.hwdb I am adding Peter Hutterer to
see if he has any more info.
Also, I'm wondering, since my trackpoint works just fine as "Generic
PS/2 Mouse", including the third button. The driver even says:
| /*
|  * Bare PS/2 protocol "detection". Always succeeds.
|  */
| static int ps2bare_detect(struct psmouse *psmouse, bool set_properties)
| {
| [...]
|         /*
|          * We have no way of figuring true number of buttons so let's
|          * assume that the device has 3.
|          */
|         __set_bit(BTN_MIDDLE, psmouse->dev->keybit);
|     }
| 
|     return 0;
| }

So I wonder what driver Aaron was using that didn't report a third
button. What vendor/firmwares did you (get reports of) have that middle
mouse button problem on, Aaron?
No, the functionality Aaron is after is scrolling with the trackpoint -
if you hold middle button and press onto the trackpoint upwards or
downwards it should scroll window content.
Thanks,

Sebastian


1: If it's actually Elan. I've taken out my battery but could only
find FRU numbers on the back of the keyboard, no signs of a vendor.
<https://photos.app.goo.gl/iafpfzvRY042dOBo2> or
<https://t.yath.de/IMG_20180108_143205.jpg>

In trackpoint_start_protocol:
quoted
+   switch (param[0]) {
+   case TP_VARIANT_IBM:
+   case TP_VARIANT_ALPS:
+   case TP_VARIANT_ELAN:
+   case TP_VARIANT_NXP:
+       if (variant_id)
+           *variant_id = param[0];
+       if (firmware_id)
+           *firmware_id = param[1];
+       break;
          ^^^^^
          That should be a return 0.
Yes, indeed.
quoted
+   }

-   return 0;
+   return -ENODEV;
 }
-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help