udev: fix ALPS firmware detection

The firmware version is in id.version, not id.model which is always
PSMOUSE_ALPS for ALPS devices.

The various fw versions are listed in <kernel>/drivers/input/mouse/alps.h and
are all hex numbers. Version 8 is actually 0x800, change the match
accordingly.

Expected side-effect: earlier versions of ALPS touchpads now lose their
(erroneous) size assignment.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 1f304763b4)
This commit is contained in:
Peter Hutterer 2016-02-09 10:37:42 +10:00
parent 216c6aae54
commit 23b506f318
2 changed files with 4 additions and 4 deletions

View file

@ -22,8 +22,8 @@ libinput:name:*AlpsPS/2 ALPS DualPoint TouchPad:dmi:*
libinput:name:*AlpsPS/2 ALPS GlidePoint:dmi:*
LIBINPUT_MODEL_ALPS_TOUCHPAD=1
libinput:name:*AlpsPS/2 ALPS DualPoint TouchPad:fwversion:8
libinput:name:*AlpsPS/2 ALPS GlidePoint:fwversion:8
libinput:name:*AlpsPS/2 ALPS DualPoint TouchPad:fwversion:800
libinput:name:*AlpsPS/2 ALPS GlidePoint:fwversion:800
LIBINPUT_ATTR_SIZE_HINT=100x55
##########################################

View file

@ -63,9 +63,9 @@ handle_touchpad_alps(struct udev_device *device)
if (sscanf(product, "%x/%x/%x/%x", &bus, &vid, &pid, &version) != 4)
return;
/* ALPS' firmware version is the PID */
/* ALPS' firmware version is the version */
if (pid)
printf("LIBINPUT_MODEL_FIRMWARE_VERSION=%d\n", pid);
printf("LIBINPUT_MODEL_FIRMWARE_VERSION=%x\n", version);
}
static void