1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-22 13:33:56 +03:00

hwdb: add a touchpad hwdb

Currently used to tag devices in the new Lenovo *50 series and the X1 Carbon
3rd. These laptops re-introduced the physical trackpoint buttons that were
missing from the *40 series but those buttons are now wired up to the
touchpad.

The touchpad now sends BTN_0, BTN_1 and BTN_2 for the trackpoint. The same
button codes were used in older touchpads that had dedicated scroll up/down
buttons. Input drivers need to work around this and thus know what they're
dealing with.

For the previous gen we introduced INPUT_PROP_TOPBUTTONPAD in the kernel, but
the resulting mess showed that these per-device quirks should really live in
userspace.

The list currently includes the X1 Carbon 3rd PNPID, others will be added as
get to know which PNPID they have.
This commit is contained in:
Peter Hutterer 2015-01-28 14:05:01 +10:00
parent 3e495a6651
commit 001a247324
3 changed files with 54 additions and 1 deletions

View File

@ -3560,6 +3560,7 @@ dist_udevrules_DATA += \
rules/60-persistent-storage.rules \
rules/64-btrfs.rules \
rules/70-mouse.rules \
rules/70-touchpad.rules \
rules/75-net-description.rules \
rules/75-tty-description.rules \
rules/78-sound-card.rules \
@ -3751,7 +3752,8 @@ dist_udevhwdb_DATA = \
hwdb/20-OUI.hwdb \
hwdb/20-net-ifname.hwdb \
hwdb/60-keyboard.hwdb \
hwdb/70-mouse.hwdb
hwdb/70-mouse.hwdb \
hwdb/70-touchpad.hwdb
EXTRA_DIST += \
units/systemd-hwdb-update.service.in

39
hwdb/70-touchpad.hwdb Normal file
View File

@ -0,0 +1,39 @@
# This file is part of systemd.
#
# The lookup keys are composed in:
# 70-touchpad.rules
#
# Note: The format of the "touchpad:" prefix match key is a
# contract between the rules file and the hardware data, it might
# change in later revisions to support more or better matches, it
# is not necessarily expected to be a stable ABI.
#
# Match string format:
# touchpad:pnpid:<pnpid>:
#
# To add local entries, create a new file
# /etc/udev/hwdb.d/71-touchpad-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# udevadm hwdb --update
# udevadm trigger /dev/input/eventXX
# where /dev/input/eventXX is the touchpad in question. If in
# doubt, simply use /dev/input/event* to reload all input rules.
#
# If your changes are generally applicable, open a bug report on
# http://bugs.freedesktop.org/enter_bug.cgi?product=systemd
# and include your new rules, a description of the device, and the
# output of
# udevadm info /dev/input/eventXX
# (or /dev/input/event*).
#
# Allowed properties are:
# TOUCHPAD_HAS_TRACKPOINT_BUTTONS=1
#
# If the TOUCHPAD_HAS_TRACKPOINT_BUTTONS property is set, this
# device has # the trackpoint buttons wired up to the touchpad as
# BTN_0, BTN_1 and BTN_2. This affects the Lenovo X1 Carbon 3rd
# and the *50 series (T450, T550, etc.)
# Lenovo X1 Carbon 3rd
touchpad:pnpid:*LEN0048*:
TOUCHPAD_HAS_TRACKPOINT_BUTTONS=1

12
rules/70-touchpad.rules Normal file
View File

@ -0,0 +1,12 @@
# do not edit this file, it will be overwritten on update
ACTION=="remove", GOTO="touchpad_end"
KERNEL!="event*", GOTO="touchpad_end"
ENV{ID_INPUT_TOUCHPAD}=="", GOTO="touchpad_end"
# touchpad:pnpid:<pnpid>:*
KERNELS=="serio1", \
IMPORT{builtin}="hwdb 'touchpad:pnpid:$attr{firmware_id}:'", \
GOTO="touchpad_end"
LABEL="touchpad_end"