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:
parent
3e495a6651
commit
001a247324
@ -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
39
hwdb/70-touchpad.hwdb
Normal 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
12
rules/70-touchpad.rules
Normal 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"
|
Loading…
Reference in New Issue
Block a user