From 55323ee7ea55146087f9996b05bfede0caa58df1 Mon Sep 17 00:00:00 2001 From: Jan Synacek Date: Feb 05 2015 08:17:17 +0000 Subject: Add touchpad hwdb (#1189319) --- diff --git a/0003-hwdb-add-a-touchpad-hwdb.patch b/0003-hwdb-add-a-touchpad-hwdb.patch new file mode 100644 index 0000000..65b4bd4 --- /dev/null +++ b/0003-hwdb-add-a-touchpad-hwdb.patch @@ -0,0 +1,119 @@ +From 85dcfad639fab203564eca0070ce3303c5942bde Mon Sep 17 00:00:00 2001 +From: Fedora systemd team +Date: Thu, 5 Feb 2015 08:55:03 +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 ac7924e..2b0128f 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -3389,6 +3389,7 @@ dist_udevrules_DATA += \ + rules/60-drm.rules \ + rules/60-keyboard.rules \ + rules/70-mouse.rules \ ++ rules/70-touchpad.rules \ + rules/60-persistent-storage-tape.rules \ + rules/60-persistent-serial.rules \ + rules/60-persistent-input.rules \ +@@ -3416,7 +3417,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 + + 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:: ++# ++# 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::* ++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 aabbf5f..e93a571 100644 --- a/systemd.spec +++ b/systemd.spec @@ -43,6 +43,7 @@ Source8: systemd-journal-gatewayd.xml # i=1; for p in 0*patch;do printf "Patch%04d: %s\n" $i $p; ((i++));done Patch0001: 0001-nspawn-fix-invocation-of-the-raw-clone-system-call-o.patch Patch0002: 0002-journald-when-we-detect-the-journal-file-we-are-abou.patch +Patch0003: 0003-hwdb-add-a-touchpad-hwdb.patch Patch0998: fedora-disable-resolv.conf-symlink.patch Patch0999: fedora-add-bridge-sysctl-configuration.patch @@ -849,6 +850,9 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd /usr/lib/firewalld/services/* %changelog +* Thu Feb 5 2015 Jan Synáček - 218-4 +- Add a touchpad hwdb (#1189319) + * Thu Jan 15 2015 Zbigniew Jędrzejewski-Szmek - 218-4 - Enable xkbcommon dependency to allow checking of keymaps - Fix permissions of /var/log/journal (#1048424)