[systemd/f21] Add the touchpad hwdb (#1189319)

jsynacek jsynacek at fedoraproject.org
Thu Feb 5 08:44:53 UTC 2015


commit e34b455b7b4401d9ea596c3c19123a5e353908d9
Author: Jan Synacek <jsynacek at redhat.com>
Date:   Thu Feb 5 09:23:34 2015 +0100

    Add the touchpad hwdb (#1189319)

 0204-hwdb-add-a-touchpad-hwdb.patch |  119 +++++++++++++++++++++++++++++++++++
 systemd.spec                        |    4 +-
 2 files changed, 122 insertions(+), 1 deletions(-)
---
diff --git a/0204-hwdb-add-a-touchpad-hwdb.patch b/0204-hwdb-add-a-touchpad-hwdb.patch
new file mode 100644
index 0000000..5745008
--- /dev/null
+++ b/0204-hwdb-add-a-touchpad-hwdb.patch
@@ -0,0 +1,119 @@
+From 55bace85c1fc9fef825af5ab55d8a8eb1c2149cd Mon Sep 17 00:00:00 2001
+From: Fedora systemd team <systemd-maint at redhat.com>
+Date: Thu, 5 Feb 2015 09:28:02 +0100
+Subject: [PATCH] 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.
+
+(Cherry-picked from 001a247324b44c0e0b8fdba41a6fc66e7465b8b6)
+---
+ Makefile.am             |  4 +++-
+ hwdb/70-touchpad.hwdb   | 39 +++++++++++++++++++++++++++++++++++++++
+ rules/70-touchpad.rules | 12 ++++++++++++
+ 3 files changed, 54 insertions(+), 1 deletion(-)
+ create mode 100644 hwdb/70-touchpad.hwdb
+ create mode 100644 rules/70-touchpad.rules
+
+diff --git a/Makefile.am b/Makefile.am
+index c80d25d..4879ba8 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -3288,6 +3288,7 @@ dist_udevrules_DATA += \
+ 	rules/50-udev-default.rules \
+ 	rules/60-drm.rules \
+ 	rules/60-keyboard.rules \
++	rules/70-touchpad.rules \
+ 	rules/60-persistent-storage-tape.rules \
+ 	rules/60-persistent-serial.rules \
+ 	rules/60-persistent-input.rules \
+@@ -3314,7 +3315,8 @@ dist_udevhwdb_DATA = \
+ 	hwdb/20-acpi-vendor.hwdb \
+ 	hwdb/20-OUI.hwdb \
+ 	hwdb/20-net-ifname.hwdb \
+-	hwdb/60-keyboard.hwdb
++	hwdb/60-keyboard.hwdb \
++	hwdb/70-touchpad.hwdb
+ 
+ udevconfdir = $(sysconfdir)/udev
+ dist_udevconf_DATA = \
+diff --git a/hwdb/70-touchpad.hwdb b/hwdb/70-touchpad.hwdb
+new file mode 100644
+index 0000000..bbf44db
+--- /dev/null
++++ b/hwdb/70-touchpad.hwdb
+@@ -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
+diff --git a/rules/70-touchpad.rules b/rules/70-touchpad.rules
+new file mode 100644
+index 0000000..88e6fd2
+--- /dev/null
++++ b/rules/70-touchpad.rules
+@@ -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"
+-- 
+2.1.0
+
diff --git a/systemd.spec b/systemd.spec
index 7e129b5..4fc619a 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -244,6 +244,7 @@ Patch0200:      0200-tmpfiles-make-sure-not-to-concatenate-non-absolute-p.patch
 Patch0201:      0201-sysv-generator-only-allow-regular-files-in-enumerate.patch
 Patch0202:      0202-logind-fix-sd_eviocrevoke-ioctl-call.patch
 Patch0203:      0203-journald-when-we-detect-the-journal-file-we-are-abou.patch
+Patch0204:      0204-hwdb-add-a-touchpad-hwdb.patch
 
 
 Patch0997:      units-remove-dev-log-to-always-create-symlink.patch
@@ -1033,8 +1034,9 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd
 %{_datadir}/systemd/gatewayd
 
 %changelog
-* Wed Feb  4 2015 Jan Synáček <jsynacek at redhat.com> - 216-18
+* Thu Feb  5 2015 Jan Synáček <jsynacek at redhat.com> - 216-18
 - RFE: journal: automatically rotate the file if it is unlinked (#1171719)
+- Add the touchpad hwdb (#1189319)
 
 * Thu Jan 22 2015 Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl> - 216-17
 - Fix syslog forwarding in containers, make sysv generator more robust, fix logind revoke call


More information about the scm-commits mailing list