libinput 1.28.1

Resolves: https://issues.redhat.com/browse/RHEL-126613
This commit is contained in:
Florian Müllner 2025-11-05 22:33:18 +01:00
parent 11be458f29
commit fc87a879b3
No known key found for this signature in database
6 changed files with 46 additions and 154 deletions

View File

@ -1,4 +1,4 @@
From 6b3b71d0ddd27207ef4c52c72080ba10b672fa5a Mon Sep 17 00:00:00 2001
From fd4da316fb4e0a7ec077eef795746744f9168b6d Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue, 22 Jul 2025 14:22:34 +1000
Subject: [PATCH] RHEL: map dials to rings on the Intuos Pro 3rd Gen devices
@ -20,17 +20,17 @@ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
src/evdev-tablet-pad.h | 5 ++
src/quirks.c | 1 +
src/quirks.h | 1 +
test/litest-device-wacom-intuos-pro-3rd-pad.c | 87 ++++++++++++++++++
test/litest-device-wacom-intuos-pro-3rd-pad.c | 86 ++++++++++++++++++
test/litest.h | 1 +
test/test-tablet.c | 59 ++++++++++++
9 files changed, 276 insertions(+), 10 deletions(-)
9 files changed, 275 insertions(+), 10 deletions(-)
create mode 100644 test/litest-device-wacom-intuos-pro-3rd-pad.c
diff --git a/meson.build b/meson.build
index 3f0583e5879f..f7fbe8222eea 100644
index 0c02b0de..bbe37d86 100644
--- a/meson.build
+++ b/meson.build
@@ -822,6 +822,7 @@ if get_option('tests')
@@ -855,6 +855,7 @@ if get_option('tests')
'test/litest-device-wacom-cintiq-pro-16-pen.c',
'test/litest-device-wacom-ekr.c',
'test/litest-device-wacom-hid4800-pen.c',
@ -39,10 +39,10 @@ index 3f0583e5879f..f7fbe8222eea 100644
'test/litest-device-wacom-intuos5-finger.c',
'test/litest-device-wacom-intuos5-pad.c',
diff --git a/quirks/30-vendor-wacom.quirks b/quirks/30-vendor-wacom.quirks
index 51211684c821..79c860efca39 100644
index a7898b65..38fbc65e 100644
--- a/quirks/30-vendor-wacom.quirks
+++ b/quirks/30-vendor-wacom.quirks
@@ -33,3 +33,45 @@ MatchBus=usb
@@ -40,3 +40,45 @@ MatchBus=usb
MatchVendor=0x2D1F
MatchProduct=0x524C
AttrEventCode=-ABS_TILT_X;-ABS_TILT_Y;
@ -89,10 +89,10 @@ index 51211684c821..79c860efca39 100644
+MatchProduct=0x03F5
+ModelWacomIntuosPro3rd=1
diff --git a/src/evdev-tablet-pad.c b/src/evdev-tablet-pad.c
index 90614c5dae91..64d0eae2b603 100644
index dc432a1c..1fe985a0 100644
--- a/src/evdev-tablet-pad.c
+++ b/src/evdev-tablet-pad.c
@@ -317,6 +317,30 @@ pad_strip_get_mode_group(struct pad_dispatch *pad,
@@ -339,6 +339,30 @@ pad_strip_get_mode_group(struct pad_dispatch *pad,
return NULL;
}
@ -123,7 +123,7 @@ index 90614c5dae91..64d0eae2b603 100644
static void
pad_check_notify_axes(struct pad_dispatch *pad,
struct evdev_device *device,
@@ -335,7 +359,7 @@ pad_check_notify_axes(struct pad_dispatch *pad,
@@ -357,7 +381,7 @@ pad_check_notify_axes(struct pad_dispatch *pad,
/* Unlike the ring axis we don't get an event when we release
* so we can't set a source */
@ -132,7 +132,7 @@ index 90614c5dae91..64d0eae2b603 100644
group = pad_dial_get_mode_group(pad, 0);
tablet_pad_notify_dial(base,
time,
@@ -344,7 +368,7 @@ pad_check_notify_axes(struct pad_dispatch *pad,
@@ -366,7 +390,7 @@ pad_check_notify_axes(struct pad_dispatch *pad,
group);
}
@ -141,7 +141,7 @@ index 90614c5dae91..64d0eae2b603 100644
group = pad_dial_get_mode_group(pad, 1);
tablet_pad_notify_dial(base,
time,
@@ -353,6 +377,34 @@ pad_check_notify_axes(struct pad_dispatch *pad,
@@ -375,6 +399,34 @@ pad_check_notify_axes(struct pad_dispatch *pad,
group);
}
@ -176,7 +176,7 @@ index 90614c5dae91..64d0eae2b603 100644
if (pad->changed_axes & PAD_AXIS_RING1) {
value = pad_handle_ring(pad, device, ABS_WHEEL);
if (send_finger_up)
@@ -780,6 +832,9 @@ pad_init(struct pad_dispatch *pad, struct evdev_device *device)
@@ -807,6 +859,9 @@ pad_init(struct pad_dispatch *pad, struct evdev_device *device)
pad->status = PAD_NONE;
pad->changed_axes = PAD_AXIS_NONE;
@ -186,7 +186,7 @@ index 90614c5dae91..64d0eae2b603 100644
/* We expect the kernel to either give us both axes as hires or neither.
* Getting one is a kernel bug we don't need to care about */
pad->dials.has_hires_dial = libevdev_has_event_code(device->evdev, EV_REL, REL_WHEEL_HI_RES) ||
@@ -886,18 +941,15 @@ evdev_device_tablet_pad_get_num_buttons(struct evdev_device *device)
@@ -922,18 +977,15 @@ evdev_device_tablet_pad_get_num_buttons(struct evdev_device *device)
return pad->nbuttons;
}
@ -210,7 +210,7 @@ index 90614c5dae91..64d0eae2b603 100644
EV_REL,
REL_HWHEEL))
ndials++;
@@ -906,6 +958,19 @@ evdev_device_tablet_pad_get_num_dials(struct evdev_device *device)
@@ -942,6 +994,19 @@ evdev_device_tablet_pad_get_num_dials(struct evdev_device *device)
return ndials;
}
@ -230,7 +230,7 @@ index 90614c5dae91..64d0eae2b603 100644
int
evdev_device_tablet_pad_get_num_rings(struct evdev_device *device)
{
@@ -914,6 +979,10 @@ evdev_device_tablet_pad_get_num_rings(struct evdev_device *device)
@@ -950,6 +1015,10 @@ evdev_device_tablet_pad_get_num_rings(struct evdev_device *device)
if (!(device->seat_caps & EVDEV_DEVICE_TABLET_PAD))
return -1;
@ -242,10 +242,10 @@ index 90614c5dae91..64d0eae2b603 100644
nrings++;
if (libevdev_has_event_code(device->evdev,
diff --git a/src/evdev-tablet-pad.h b/src/evdev-tablet-pad.h
index fe7aa8b79ff0..c9c23583c714 100644
index 2b767f58..53c963e0 100644
--- a/src/evdev-tablet-pad.h
+++ b/src/evdev-tablet-pad.h
@@ -79,6 +79,11 @@ struct pad_dispatch {
@@ -83,6 +83,11 @@ struct pad_dispatch {
bool has_hires_dial;
double dial1;
double dial2;
@ -258,7 +258,7 @@ index fe7aa8b79ff0..c9c23583c714 100644
struct {
diff --git a/src/quirks.c b/src/quirks.c
index 01065d5eaa21..1151caac1d9d 100644
index 6d45f4ac..9da23a59 100644
--- a/src/quirks.c
+++ b/src/quirks.c
@@ -272,6 +272,7 @@ quirk_get_name(enum quirk q)
@ -270,23 +270,23 @@ index 01065d5eaa21..1151caac1d9d 100644
case QUIRK_ATTR_SIZE_HINT: return "AttrSizeHint";
diff --git a/src/quirks.h b/src/quirks.h
index 340d04635b9f..ff0ac94e424f 100644
index 340d0463..784084ef 100644
--- a/src/quirks.h
+++ b/src/quirks.h
@@ -86,6 +86,7 @@ enum quirk {
@@ -85,6 +85,7 @@ enum quirk {
QUIRK_MODEL_TABLET_MODE_SWITCH_UNRELIABLE,
QUIRK_MODEL_TOUCHPAD_VISIBLE_MARKER,
QUIRK_MODEL_TRACKBALL,
QUIRK_MODEL_WACOM_TOUCHPAD,
+ QUIRK_MODEL_WACOM_INTUOS_PRO_3RD,
QUIRK_MODEL_WACOM_TOUCHPAD,
QUIRK_MODEL_PRESSURE_PAD,
QUIRK_MODEL_TOUCHPAD_PHANTOM_CLICKS,
diff --git a/test/litest-device-wacom-intuos-pro-3rd-pad.c b/test/litest-device-wacom-intuos-pro-3rd-pad.c
new file mode 100644
index 000000000000..d5e54d46db6b
index 00000000..7ecc1c34
--- /dev/null
+++ b/test/litest-device-wacom-intuos-pro-3rd-pad.c
@@ -0,0 +1,87 @@
@@ -0,0 +1,86 @@
+/*
+ * Copyright © 2016 Red Hat, Inc.
+ *
@ -360,8 +360,7 @@ index 000000000000..d5e54d46db6b
+ -1, -1,
+};
+
+TEST_DEVICE("wacom-intuos3-pad",
+ .type = LITEST_WACOM_INTUOS_PRO_3RD_PAD,
+TEST_DEVICE(LITEST_WACOM_INTUOS_PRO_3RD_PAD,
+ .features = LITEST_TABLET_PAD, /* RHEL: not LITEST_DIAL because it's special */
+ .interface = &interface,
+
@ -375,22 +374,22 @@ index 000000000000..d5e54d46db6b
+ },
+)
diff --git a/test/litest.h b/test/litest.h
index 6108be50a4c1..93bea19dcd3e 100644
index 57e68b40..80ae819b 100644
--- a/test/litest.h
+++ b/test/litest.h
@@ -352,6 +352,7 @@ enum litest_device_type {
@@ -471,6 +471,7 @@ enum litest_device_type {
LITEST_WACOM_CINTIQ_PRO16_PEN,
LITEST_WACOM_EKR,
LITEST_WACOM_HID4800_PEN,
LITEST_WACOM_INTUOS,
+ LITEST_WACOM_INTUOS_PRO_3RD_PAD,
LITEST_WACOM_INTUOS3_PAD,
LITEST_WACOM_INTUOS5_PAD,
LITEST_WACOM_ISDV4,
LITEST_WACOM_INTUOS5_PEN,
diff --git a/test/test-tablet.c b/test/test-tablet.c
index b652dcfd5345..ae88c844be91 100644
index 90d36ebb..7104a433 100644
--- a/test/test-tablet.c
+++ b/test/test-tablet.c
@@ -6560,6 +6560,62 @@ START_TEST(tablet_smoothing)
@@ -7216,6 +7216,62 @@ START_TEST(tablet_smoothing)
}
END_TEST
@ -452,15 +451,17 @@ index b652dcfd5345..ae88c844be91 100644
+
TEST_COLLECTION(tablet)
{
struct range with_timeout = { 0, 2 };
@@ -6704,4 +6760,7 @@ TEST_COLLECTION(tablet)
litest_add_ranged_for_device(huion_static_btn_tool_pen_disable_quirk_on_prox_out, LITEST_HUION_TABLET, &with_timeout);
litest_add(tool_ref, LITEST_TABLET | LITEST_TOOL_SERIAL, LITEST_ANY);
@@ -7369,6 +7425,9 @@ TEST_COLLECTION(tablet)
}
litest_add_for_device(tablet_smoothing, LITEST_WACOM_HID4800_PEN);
+
+ struct range dial_ring_cases = { 0, 8 };
+ litest_add_ranged_for_device(tablet_dial_to_ring, LITEST_WACOM_INTUOS_PRO_3RD_PAD, &dial_ring_cases);
}
TEST_COLLECTION(tablet_left_handed)
--
2.50.1
2.51.1

View File

@ -1,33 +0,0 @@
From 7ea1d8501fb5cfb4221a5f4647e8fde05092e613 Mon Sep 17 00:00:00 2001
From: Jason Gerecke <killertofu@gmail.com>
Date: Mon, 29 Jul 2024 22:46:57 +0000
Subject: [PATCH] tablet: Remove unnecessary scale factor on REL_HWHEEL_HI_RES
The two high-res axes should already be scaled appropriately by the
kernel. This unnecessary scale factor causes 1 click of the dial to
produce an event delta of +-14400 rather than the expected +-120.
Fixes: beca99812208 ("tablet: add API for relative dials")
Part-of: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1029>
(cherry picked from commit 66106b9746a46d5c1a112d8eae74acf0469a7cf6)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
src/evdev-tablet-pad.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/evdev-tablet-pad.c b/src/evdev-tablet-pad.c
index 3aa92a4a4c69..90614c5dae91 100644
--- a/src/evdev-tablet-pad.c
+++ b/src/evdev-tablet-pad.c
@@ -129,7 +129,7 @@ pad_process_relative(struct pad_dispatch *pad,
pad_set_status(pad, PAD_AXES_UPDATED);
break;
case REL_HWHEEL_HI_RES:
- pad->dials.dial2 = e->value * 120;
+ pad->dials.dial2 = e->value;
pad->changed_axes |= PAD_AXIS_DIAL2;
pad_set_status(pad, PAD_AXES_UPDATED);
break;
--
2.50.1

View File

@ -1,38 +0,0 @@
From ac3b94975742c06bbe1eb614edb251f2465b2dbb Mon Sep 17 00:00:00 2001
From: Marge Yang <marge.yang@synaptics.corp-partner.google.com>
Date: Tue, 21 Jan 2025 07:26:41 +0000
Subject: [PATCH] quirks: add quirk for Dell Haptics Touchpad.
This Touchpad is a pressure pad and needs the pressure
handling disable.
Part-of: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1127>
(cherry picked from commit af0e9a23c32d086fece58a95cb720994ad02d0b4)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
quirks/50-system-dell.quirks | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/quirks/50-system-dell.quirks b/quirks/50-system-dell.quirks
index f46ab2b3c50e..a3492eb40e75 100644
--- a/quirks/50-system-dell.quirks
+++ b/quirks/50-system-dell.quirks
@@ -141,3 +141,15 @@ MatchProduct=0x1063
MatchUdevType=touchpad
MatchDMIModalias=dmi:*svnDellInc.:pnPrecision5480*
ModelTouchpadVisibleMarker=0
+
+[Dell laptop 14 Synaptics touchpad]
+MatchBus=i2c
+MatchVendor=0x06CB
+MatchProduct=0xCFF8
+ModelPressurePad=1
+
+[Dell laptop 16 Synaptics touchpad]
+MatchBus=i2c
+MatchVendor=0x06CB
+MatchProduct=0xCFF9
+ModelPressurePad=1
--
2.50.1

View File

@ -1,39 +0,0 @@
From 54bbba8b2e35b6ceefed3ca0fe8c18e5b9a0759b Mon Sep 17 00:00:00 2001
From: wangyafei <wangyafei@goodix.com>
Date: Tue, 21 Jan 2025 17:17:05 +0800
Subject: [PATCH] quirks: add quirks for Dell laptop with Goodix Touchpad.
This touchpad is a pressure pad and needs the pressure
handling disable.
Signed-off-by: Charles Wang <charles.goodix@gmail.com>
Part-of: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1130>
(cherry picked from commit 3cf6c91fff5b84757792810c4016144443581da6)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
quirks/50-system-dell.quirks | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/quirks/50-system-dell.quirks b/quirks/50-system-dell.quirks
index a3492eb40e75..8110651e466f 100644
--- a/quirks/50-system-dell.quirks
+++ b/quirks/50-system-dell.quirks
@@ -153,3 +153,15 @@ MatchBus=i2c
MatchVendor=0x06CB
MatchProduct=0xCFF9
ModelPressurePad=1
+
+[Dell laptop 14 Goodix touchpad]
+MatchBus=i2c
+MatchVendor=0x27C6
+MatchProduct=0x0F61
+ModelPressurePad=1
+
+[Dell laptop 16 Goodix touchpad]
+MatchBus=i2c
+MatchVendor=0x27C6
+MatchProduct=0x0F62
+ModelPressurePad=1
--
2.50.1

View File

@ -4,8 +4,8 @@
%global gitversion 58abea394
Name: libinput
Version: 1.26.1
Release: 5%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
Version: 1.28.1
Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
Summary: Input device library
# SPDX
@ -19,10 +19,7 @@ Source2: commitid
Source0: https://gitlab.freedesktop.org/libinput/libinput/-/archive/%{version}/libinput-%{version}.tar.bz2
%endif
Patch0001: 0001-tablet-Remove-unnecessary-scale-factor-on-REL_HWHEEL.patch
Patch0002: 0002-RHEL-map-dials-to-rings-on-the-Intuos-Pro-3rd-Gen-de.patch
Patch0003: 0003-quirks-add-quirk-for-Dell-Haptics-Touchpad.patch
Patch0004: 0004-quirks-add-quirks-for-Dell-laptop-with-Goodix-Touchp.patch
Patch0002: 0001-RHEL-map-dials-to-rings-on-the-Intuos-Pro-3rd-Gen-de.patch
BuildRequires: git-core
BuildRequires: gcc
@ -162,6 +159,10 @@ intended to be run by users.
%changelog
* Wed Nov 05 2025 Florian Müllner <fmuellner@redhat.com> - 1.28.1-1
- libinput 1.28.1
Resolves: RHEL-126613
* Fri Aug 01 2025 Peter Hutterer <peter.hutterer@redhat.com> - 1.26.1-5
- Add quirks for four Dell pressure pads (RHEL-106932)

View File

@ -1 +1 @@
SHA512 (libinput-1.26.1.tar.bz2) = d4611fc75ee6091f3139134f348db79d710560c27a936c7a8c0dc50657d6e1bdbdb1b44fb4c2c668a5b45934d91d3aef336d4096806807354472b25e298cdab6
SHA512 (libinput-1.28.1.tar.bz2) = 354a91f2239da5e5bbb12bb7473bd1fb7adf69e6243e8da786ace9e80eda6c8f733620b5f1e20411c732fcfa4dedf5ccd2e722a78693e564a24771e80f1c72aa