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. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
This commit is contained in:
parent
681b0e3876
commit
b51ba787a3
|
@ -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
|
|
@ -10,7 +10,8 @@ dist_udevhwdb_DATA = \
|
|||
20-sdio-vendor-model.hwdb \
|
||||
20-usb-classes.hwdb \
|
||||
20-usb-vendor-model.hwdb \
|
||||
70-mouse.hwdb
|
||||
70-mouse.hwdb \
|
||||
70-touchpad.hwdb
|
||||
|
||||
if ENABLE_KEYMAP
|
||||
dist_udevhwdb_DATA += \
|
||||
|
|
|
@ -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"
|
|
@ -13,6 +13,7 @@ dist_udevrules_DATA = \
|
|||
61-accelerometer.rules \
|
||||
64-btrfs.rules \
|
||||
70-mouse.rules \
|
||||
70-touchpad.rules \
|
||||
75-net-description.rules \
|
||||
75-probe_mtd.rules \
|
||||
75-tty-description.rules \
|
||||
|
|
Loading…
Reference in New Issue