[PATCH libinput 6/9] udev: add ALPS firmware detection and size properties
Hans de Goede
hdegoede at redhat.com
Wed Jul 8 05:35:21 PDT 2015
Hi,
On 01-07-15 08:08, Peter Hutterer wrote:
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
LGTM: Reviewed-by: Hans de Goede <hdegoede at redhat.com>
Regards,
Hans
> ---
> udev/90-libinput-model-quirks.hwdb | 4 ++++
> udev/libinput-model-quirks.c | 20 ++++++++++++++++++++
> 2 files changed, 24 insertions(+)
>
> diff --git a/udev/90-libinput-model-quirks.hwdb b/udev/90-libinput-model-quirks.hwdb
> index 3bfffbb..69e28ae 100644
> --- a/udev/90-libinput-model-quirks.hwdb
> +++ b/udev/90-libinput-model-quirks.hwdb
> @@ -22,6 +22,10 @@ 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_ATTR_SIZE_HINT=100x55
> +
> ##########################################
> # Apple
> ##########################################
> diff --git a/udev/libinput-model-quirks.c b/udev/libinput-model-quirks.c
> index 87c19d4..6140371 100644
> --- a/udev/libinput-model-quirks.c
> +++ b/udev/libinput-model-quirks.c
> @@ -99,6 +99,24 @@ out:
> }
>
> static void
> +handle_touchpad_alps(struct udev_device *device)
> +{
> + const char *product;
> + int bus, vid, pid, version;
> +
> + product = prop_value(device, "PRODUCT");
> + if (!product)
> + return;
> +
> + if (sscanf(product, "%x/%x/%x/%x", &bus, &vid, &pid, &version) != 4)
> + return;
> +
> + /* ALPS' firmware version is the PID */
> + if (pid)
> + printf("LIBINPUT_MODEL_FIRMWARE_VERSION=%d\n", pid);
> +}
> +
> +static void
> handle_touchpad(struct udev_device *device)
> {
> const char *name = NULL;
> @@ -109,6 +127,8 @@ handle_touchpad(struct udev_device *device)
>
> if (strstr(name, "ETPS/2 Elantech Touchpad") != NULL)
> handle_touchpad_elantech(device);
> + else if (strstr(name, "AlpsPS/2 ALPS") != NULL)
> + handle_touchpad_alps(device);
> }
>
> int main(int argc, char **argv)
>
More information about the wayland-devel
mailing list