diff --git a/.gitignore b/.gitignore index 69575ed..2b3fd13 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/xf86-input-wacom-0.34.2.tar.bz2 +SOURCES/xf86-input-wacom-0.36.1.tar.bz2 diff --git a/.xorg-x11-drv-wacom.metadata b/.xorg-x11-drv-wacom.metadata index 02880c6..694a116 100644 --- a/.xorg-x11-drv-wacom.metadata +++ b/.xorg-x11-drv-wacom.metadata @@ -1 +1 @@ -5d781ec5c8c23306d52bf559fa3af79b6a3b410e SOURCES/xf86-input-wacom-0.34.2.tar.bz2 +51d1b198f86bf7609b0464ce34a93c90f1ef557c SOURCES/xf86-input-wacom-0.36.1.tar.bz2 diff --git a/SOURCES/0001-Add-support-for-kernel-s-new-BTN_STYLUS3-event.patch b/SOURCES/0001-Add-support-for-kernel-s-new-BTN_STYLUS3-event.patch deleted file mode 100644 index 6c267aa..0000000 --- a/SOURCES/0001-Add-support-for-kernel-s-new-BTN_STYLUS3-event.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 4a96a58f2693b291b91e21b7e34f5c5e04015f3f Mon Sep 17 00:00:00 2001 -From: Jason Gerecke -Date: Tue, 3 Oct 2017 13:45:37 -0700 -Subject: [PATCH] Add support for kernel's new BTN_STYLUS3 event - -BTN_STYLUS3 was (will be) added to the Linux 4.15 kernel to support the -third button present on Wacom's "Pro Pen 3D" stylus. This commit adds -support for this new event, mapping it to mouse button 8 ("navigate -back"). Remapping this button to a different function is possible by -using commands like `xsetwacom set button 8 `. - -Signed-off-by: Jason Gerecke -Reviewed-by: Peter Hutterer ---- - src/wcmUSB.c | 4 ++++ - src/xf86WacomDefs.h | 6 ++++++ - 2 files changed, 10 insertions(+) - -diff --git a/src/wcmUSB.c b/src/wcmUSB.c -index 0b5ec57..2f96a8a 100644 ---- a/src/wcmUSB.c -+++ b/src/wcmUSB.c -@@ -1454,6 +1454,10 @@ static void usbParseKeyEvent(WacomCommonPtr common, - ds->buttons = mod_buttons(ds->buttons, 2, event->value); - break; - -+ case BTN_STYLUS3: -+ ds->buttons = mod_buttons(ds->buttons, 3, event->value); -+ break; -+ - default: - change = 0; - } -diff --git a/src/xf86WacomDefs.h b/src/xf86WacomDefs.h -index ec34211..a772597 100644 ---- a/src/xf86WacomDefs.h -+++ b/src/xf86WacomDefs.h -@@ -93,6 +93,12 @@ - #define ABS_MT_SLOT 0x2f - #endif - -+/* 4.15 */ -+ -+#ifndef BTN_STYLUS3 -+#define BTN_STYLUS3 0x149 -+#endif -+ - /****************************************************************************** - * Forward Declarations - *****************************************************************************/ --- -2.14.3 - diff --git a/SOURCES/0001-Introduce-Pressure2K-config-option-for-incompatible-.patch b/SOURCES/0001-Introduce-Pressure2K-config-option-for-incompatible-.patch deleted file mode 100644 index 7e0dfea..0000000 --- a/SOURCES/0001-Introduce-Pressure2K-config-option-for-incompatible-.patch +++ /dev/null @@ -1,285 +0,0 @@ -From d958ab79d21b57141415650daac88f9369a1c861 Mon Sep 17 00:00:00 2001 -From: Jason Gerecke -Date: Wed, 31 May 2017 10:57:12 +1000 -Subject: [PATCH] Introduce "Pressure2K" config option for incompatible - software - -It appears that some software may not be entirely compatible with the -expanded 65K pressure level range that was introduced in version 0.34.0. -Although our driver advertises the larger range in XI2 (and toolkits -like GTK+2/3 and Qt3/4/5 make use of it), there have been reports of -other software (e.g. The Foundry's "NUKE") misbehaving. - -As a workaround, this patch introduces a new boolean config option named -"Pressure2K". If enabled, it causes the driver to revert to its prior -behavior of using a pressure range of 0-2047. This option is disabled by -default, but can be turned on by adding the following configuration -snippet to a new file in the /etc/X11/xorg.conf.d directory: - -Section "InputClass" - Identifier "Wacom pressure compatibility" - MatchDriver "wacom" - Option "Pressure2K" "true" -EndSection - -Ref: https://sourceforge.net/p/linuxwacom/mailman/message/35857403/ -Ref: 3e56ce4429 (Increase full-scale pressure range from 0..2047 to 0..65535) -Signed-off-by: Jason Gerecke -Reviewed-by: Peter Hutterer -Signed-off-by: Peter Hutterer ---- - man/wacom.man | 21 +++++++++++++++++++++ - src/wcmCommon.c | 16 ++++++++-------- - src/wcmConfig.c | 1 + - src/wcmFilter.c | 2 +- - src/wcmValidateDevice.c | 5 +++++ - src/wcmXCommand.c | 22 ++++++++++++---------- - src/xf86Wacom.c | 2 +- - src/xf86WacomDefs.h | 5 +++-- - 8 files changed, 52 insertions(+), 22 deletions(-) - -diff --git a/man/wacom.man b/man/wacom.man -index cd33438..3693c94 100644 ---- a/man/wacom.man -+++ b/man/wacom.man -@@ -185,6 +185,14 @@ slightly raised curve (softer) might be "0,5,95,100". - The pressure curve is only applicable to devices of type stylus or eraser, - other devices do not honor this setting. - .TP 4 -+.B Option \fI"Pressure2K"\fP \fI"bool"\fP -+reduces the pressure range to the range of 0 to 2048 for backwards -+compatibility with applications that have this range hardcoded. -+See section -+.B BUGS. -+This option should not be used unless the user runs one or more -+applications that rely on a hardcoded pressure range. -+.TP 4 - .B Option \fI"DebugLevel"\fP \fI"number"\fP - sets the level of debugging info for tool-specific messages. There are 12 - levels, specified by the integers between 1 and 12. All debug messages with -@@ -303,6 +311,19 @@ two separated fingers side by side, bring together i.e. pinch. - \fBZoom out:\fR - two fingers side by side, spread. Not all applications support zoom. - .PP -+.SH "BUGS" -+.SS "Pressure range increase leads to unexpected behavior" -+In version 0.34, the driver's pressure range increased from -+2048 steps to 65536 steps. The pressure axis range is advertised through the -+X Input Protocol but some applications have the previous pressure range -+hardcoded and cannot handle pressure values above 2048. This is an -+application bug but for backwards-compatibility with such applications, this -+driver provides the -+.B Pressure2K -+option to reduce the range to 2048 steps. Note that this setting applies to -+the device. Once applied, all applications will see the reduced pressure -+range. It is not possible to provide this setting on a per-application -+basis. - .SH "SEE ALSO" - __xservername__(__appmansuffix__), xorg.conf(__filemansuffix__), - xorg.conf.d(__filemansuffix__), X(__miscmansuffix__) -diff --git a/src/wcmCommon.c b/src/wcmCommon.c -index f6cfd3d..dc6ecbd 100644 ---- a/src/wcmCommon.c -+++ b/src/wcmCommon.c -@@ -1056,7 +1056,7 @@ rebasePressure(const WacomDevicePtr priv, const WacomDeviceState *ds) - - /** - * Instead of reporting the raw pressure, we normalize -- * the pressure from 0 to FILTER_PRESSURE_RES. This is -+ * the pressure from 0 to maxCurve. This is - * mainly to deal with the case where heavily used - * stylus may have a "pre-loaded" initial pressure. To - * do so, we keep the in-prox pressure and subtract it -@@ -1081,14 +1081,14 @@ normalizePressure(const WacomDevicePtr priv, const int raw_pressure) - p -= priv->minPressure; - range_left -= priv->minPressure; - } -- /* normalize pressure to 0..FILTER_PRESSURE_RES */ -+ /* normalize pressure to 0..maxCurve */ - if (range_left >= 1) - pressure = xf86ScaleAxis(p, -- FILTER_PRESSURE_RES, 0, -+ priv->maxCurve, 0, - range_left, - 0); - else -- pressure = FILTER_PRESSURE_RES; -+ pressure = priv->maxCurve; - - return (int)pressure; - } -@@ -1117,8 +1117,8 @@ setPressureButton(const WacomDevicePtr priv, int buttons, const int pressure) - { - /* don't set it off if it is within the tolerance - and threshold is larger than the tolerance */ -- if ((common->wcmThreshold > THRESHOLD_TOLERANCE) && -- (pressure > common->wcmThreshold - THRESHOLD_TOLERANCE)) -+ if ((common->wcmThreshold > (priv->maxCurve * THRESHOLD_TOLERANCE)) && -+ (pressure > common->wcmThreshold - (priv->maxCurve * THRESHOLD_TOLERANCE))) - buttons |= button; - } - } -@@ -1350,7 +1350,7 @@ int wcmInitTablet(InputInfoPtr pInfo, const char* id, float version) - if (common->wcmThreshold <= 0 && IsPen(priv)) - { - /* Threshold for counting pressure as a button */ -- common->wcmThreshold = DEFAULT_THRESHOLD; -+ common->wcmThreshold = priv->maxCurve * DEFAULT_THRESHOLD; - - xf86Msg(X_PROBED, "%s: using pressure threshold of %d for button 1\n", - pInfo->name, common->wcmThreshold); -@@ -1401,7 +1401,7 @@ static int applyPressureCurve(WacomDevicePtr pDev, const WacomDeviceStatePtr pSt - /* clip the pressure */ - int p = max(0, pState->pressure); - -- p = min(FILTER_PRESSURE_RES, p); -+ p = min(pDev->maxCurve, p); - - /* apply pressure curve function */ - if (pDev->pPressCurve == NULL) -diff --git a/src/wcmConfig.c b/src/wcmConfig.c -index 0924c43..6b269bb 100644 ---- a/src/wcmConfig.c -+++ b/src/wcmConfig.c -@@ -63,6 +63,7 @@ static int wcmAllocate(InputInfoPtr pInfo) - priv->pInfo = pInfo; - priv->common = common; /* common info pointer */ - priv->oldCursorHwProx = 0; /* previous cursor hardware proximity */ -+ priv->maxCurve = FILTER_PRESSURE_RES; - priv->nPressCtrl [0] = 0; /* pressure curve x0 */ - priv->nPressCtrl [1] = 0; /* pressure curve y0 */ - priv->nPressCtrl [2] = 100; /* pressure curve x1 */ -diff --git a/src/wcmFilter.c b/src/wcmFilter.c -index aca5cd9..e7ddb37 100644 ---- a/src/wcmFilter.c -+++ b/src/wcmFilter.c -@@ -78,7 +78,7 @@ void wcmSetPressureCurve(WacomDevicePtr pDev, int x0, int y0, - - if (pDev->pPressCurve) - filterCurveToLine(pDev->pPressCurve, -- FILTER_PRESSURE_RES, -+ pDev->maxCurve, - 0.0, 0.0, /* bottom left */ - x0/100.0, y0/100.0, /* control point 1 */ - x1/100.0, y1/100.0, /* control point 2 */ -diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c -index d2a7723..0da5076 100644 ---- a/src/wcmValidateDevice.c -+++ b/src/wcmValidateDevice.c -@@ -875,6 +875,11 @@ Bool wcmPreInitParseOptions(InputInfoPtr pInfo, Bool is_primary, - } - free(s); - -+ if (xf86SetBoolOption(pInfo->options, "Pressure2K", 0)) { -+ xf86Msg(X_CONFIG, "%s: Using 2K pressure levels\n", pInfo->name); -+ priv->maxCurve = 2048; -+ } -+ - /*Serials of tools we want hotpluged*/ - if (wcmParseSerials (pInfo) != 0) - goto error; -diff --git a/src/wcmXCommand.c b/src/wcmXCommand.c -index 0e1d657..e18fb8f 100644 ---- a/src/wcmXCommand.c -+++ b/src/wcmXCommand.c -@@ -106,21 +106,23 @@ static Atom prop_debuglevels; - /** - * Calculate a user-visible pressure level from a driver-internal pressure - * level. Pressure settings exposed to the user assume a range of 0-2047 -- * while the driver scales everything to a range of 0-FILTER_PRESSURE_RES. -+ * while the driver scales everything to a range of 0-maxCurve. - */ --static inline int wcmInternalToUserPressure(int pressure) -+static inline int wcmInternalToUserPressure(InputInfoPtr pInfo, int pressure) - { -- return pressure / (FILTER_PRESSURE_RES / 2048); -+ WacomDevicePtr priv = (WacomDevicePtr) pInfo->private; -+ return pressure / (priv->maxCurve / 2048); - } - - /** - * Calculate a driver-internal pressure level from a user-visible pressure - * level. Pressure settings exposed to the user assume a range of 0-2047 -- * while the driver scales everything to a range of 0-FILTER_PRESSURE_RES. -+ * while the driver scales everything to a range of 0-maxCurve. - */ --static inline int wcmUserToInternalPressure(int pressure) -+static inline int wcmUserToInternalPressure(InputInfoPtr pInfo, int pressure) - { -- return pressure * (FILTER_PRESSURE_RES / 2048); -+ WacomDevicePtr priv = (WacomDevicePtr) pInfo->private; -+ return pressure * (priv->maxCurve / 2048); - } - - /** -@@ -276,7 +278,7 @@ void InitWcmDeviceProperties(InputInfoPtr pInfo) - } - - values[0] = (!common->wcmMaxZ) ? 0 : common->wcmThreshold; -- values[0] = wcmInternalToUserPressure(values[0]); -+ values[0] = wcmInternalToUserPressure(pInfo, values[0]); - prop_threshold = InitWcmAtom(pInfo->dev, WACOM_PROP_PRESSURE_THRESHOLD, XA_INTEGER, 32, 1, values); - - values[0] = common->wcmSuppress; -@@ -846,7 +848,7 @@ int wcmSetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop, - common->wcmCursorProxoutDist = value; - } else if (property == prop_threshold) - { -- const INT32 MAXIMUM = wcmInternalToUserPressure(FILTER_PRESSURE_RES); -+ const INT32 MAXIMUM = wcmInternalToUserPressure(pInfo, priv->maxCurve); - INT32 value; - - if (prop->size != 1 || prop->format != 32) -@@ -855,11 +857,11 @@ int wcmSetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop, - value = *(INT32*)prop->data; - - if (value == -1) -- value = DEFAULT_THRESHOLD; -+ value = priv->maxCurve * DEFAULT_THRESHOLD; - else if ((value < 1) || (value > MAXIMUM)) - return BadValue; - else -- value = wcmUserToInternalPressure(value); -+ value = wcmUserToInternalPressure(pInfo, value); - - if (!checkonly) - common->wcmThreshold = value; -diff --git a/src/xf86Wacom.c b/src/xf86Wacom.c -index a511fd2..738690f 100644 ---- a/src/xf86Wacom.c -+++ b/src/xf86Wacom.c -@@ -200,7 +200,7 @@ static int wcmInitAxes(DeviceIntPtr pWcm) - if (!IsPad(priv)) - { - label = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_PRESSURE); -- max = FILTER_PRESSURE_RES; -+ max = priv->maxCurve; - } - - wcmInitAxis(pInfo->dev, index, label, min, max, res, min_res, max_res, mode); -diff --git a/src/xf86WacomDefs.h b/src/xf86WacomDefs.h -index b10a114..ec34211 100644 ---- a/src/xf86WacomDefs.h -+++ b/src/xf86WacomDefs.h -@@ -182,8 +182,8 @@ struct _WacomModel - - #define FILTER_PRESSURE_RES 65536 /* maximum points in pressure curve */ - /* Tested result for setting the pressure threshold to a reasonable value */ --#define THRESHOLD_TOLERANCE (FILTER_PRESSURE_RES / 125) --#define DEFAULT_THRESHOLD (FILTER_PRESSURE_RES / 75) -+#define THRESHOLD_TOLERANCE (0.008f) -+#define DEFAULT_THRESHOLD (0.013f) - - #define WCM_MAX_BUTTONS 32 /* maximum number of tablet buttons */ - #define WCM_MAX_X11BUTTON 127 /* maximum button number X11 can handle */ -@@ -285,6 +285,7 @@ struct _WacomDeviceRec - struct _WacomDeviceState oldState; /* previous state information */ - int oldCursorHwProx; /* previous cursor hardware proximity */ - -+ int maxCurve; /* maximum pressure curve value */ - int *pPressCurve; /* pressure curve */ - int nPressCtrl[4]; /* control points for curve */ - int minPressure; /* the minimum pressure a pen may hold */ --- -2.13.0 - diff --git a/SOURCES/0001-Remove-the-device-s-fd-from-the-select-set-when-we-g.patch b/SOURCES/0001-Remove-the-device-s-fd-from-the-select-set-when-we-g.patch deleted file mode 100644 index f79506f..0000000 --- a/SOURCES/0001-Remove-the-device-s-fd-from-the-select-set-when-we-g.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 84e81636b29cca6dc1a5423e76ac2ab2c636eb86 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Tue, 18 Jul 2017 08:41:37 +1000 -Subject: [PATCH] Remove the device's fd from the select() set when we get - ENODEV - -If the device is unplugged, the fd triggers in select/poll/... but comes back -with ENODEV. This triggers a lot of error messages in the log until finally -the udev code catches up with us and the device is removed properly. - -Catch that case by removing the fd from the select() set so we don't get -triggered to call read_input on it anymore. - -https://sourceforge.net/p/linuxwacom/bugs/337/ - -Signed-off-by: Peter Hutterer -Tested-by: crocket -Reviewed-by: Ping Cheng -(cherry picked from commit 912611608b3ba892a7c26d1be81209f4e5b009d5) ---- - src/xf86Wacom.c | 12 +++++++++--- - src/xf86Wacom.h | 2 +- - 2 files changed, 10 insertions(+), 4 deletions(-) - -diff --git a/src/xf86Wacom.c b/src/xf86Wacom.c -index 90ce793..896a8c1 100644 ---- a/src/xf86Wacom.c -+++ b/src/xf86Wacom.c -@@ -632,7 +632,8 @@ static void wcmDevReadInput(InputInfoPtr pInfo) - if (!wcmReady(pInfo)) break; - - /* dispatch */ -- wcmReadPacket(pInfo); -+ if (!wcmReadPacket(pInfo)) -+ break; - } - - #ifdef DEBUG -@@ -649,7 +650,7 @@ static void wcmDevReadInput(InputInfoPtr pInfo) - #endif - } - --void wcmReadPacket(InputInfoPtr pInfo) -+Bool wcmReadPacket(InputInfoPtr pInfo) - { - WacomDevicePtr priv = (WacomDevicePtr)pInfo->private; - WacomCommonPtr common = priv->common; -@@ -672,7 +673,10 @@ void wcmReadPacket(InputInfoPtr pInfo) - if (errno != EAGAIN && errno != EINTR) - LogMessageVerbSigSafe(X_ERROR, 0, - "%s: Error reading wacom device : %s\n", pInfo->name, strerror(errno)); -- return; -+ if (errno == ENODEV) -+ xf86RemoveEnabledDevice(pInfo); -+ -+ return FALSE; - } - - /* account for new data */ -@@ -704,6 +708,8 @@ void wcmReadPacket(InputInfoPtr pInfo) - } - - common->bufpos = len; -+ -+ return TRUE; - } - - int wcmDevChangeControl(InputInfoPtr pInfo, xDeviceCtl * control) -diff --git a/src/xf86Wacom.h b/src/xf86Wacom.h -index afb4e9e..ccc2d56 100644 ---- a/src/xf86Wacom.h -+++ b/src/xf86Wacom.h -@@ -120,7 +120,7 @@ char *wcmEventAutoDevProbe (InputInfoPtr pInfo); - int wcmInitTablet(InputInfoPtr pInfo, const char* id, float version); - - /* standard packet handler */ --void wcmReadPacket(InputInfoPtr pInfo); -+Bool wcmReadPacket(InputInfoPtr pInfo); - - /* handles suppression, filtering, and dispatch. */ - void wcmEvent(WacomCommonPtr common, unsigned int channel, const WacomDeviceState* ds); --- -2.13.6 - diff --git a/SOURCES/0001-Support-recent-display-devices-on-older-kernels.patch b/SOURCES/0001-Support-recent-display-devices-on-older-kernels.patch deleted file mode 100644 index 92be110..0000000 --- a/SOURCES/0001-Support-recent-display-devices-on-older-kernels.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 8db05e73d6fc0f9aeb74fbe2ba109a7205d3819e Mon Sep 17 00:00:00 2001 -From: Aaron Armstrong Skomra -Date: Tue, 2 May 2017 09:48:56 -0700 -Subject: [PATCH 1/4] Support recent display devices on older kernels - -Older kernels like 2.6.30 will end up with touches -interpreted as relative events unless these devices -are explicitly added. - -Signed-off-by: Aaron Armstrong Skomra -Reviewed-by: Peter Hutterer -(cherry picked from commit 0318b1cda79261d73f04676dd662f98c84711747) ---- - src/wcmUSB.c | 8 ++++++++ - src/wcmValidateDevice.c | 8 ++++++++ - 2 files changed, 16 insertions(+) - -diff --git a/src/wcmUSB.c b/src/wcmUSB.c -index 2f9d93f..295286a 100644 ---- a/src/wcmUSB.c -+++ b/src/wcmUSB.c -@@ -287,6 +287,14 @@ static struct WacomModelDesc - { WACOM_VENDOR_ID, 0x57, 200000, 200000, &usbCintiqV5, "DTK2241" }, - { WACOM_VENDOR_ID, 0x59, 200000, 200000, &usbCintiqV5, "DTH2242" }, - { WACOM_VENDOR_ID, 0x5B, 200000, 200000, &usbCintiqV5, "Cintiq 22HDT" }, -+ { WACOM_VENDOR_ID, 0x34A, 200000, 200000, &usbCintiqV5, "Mobilestudio Pro 13" }, /* Touch */ -+ { WACOM_VENDOR_ID, 0x34B, 200000, 200000, &usbCintiqV5, "MobileStudio Pro 16" }, /* Touch */ -+ { WACOM_VENDOR_ID, 0x34D, 200000, 200000, &usbCintiqV5, "MobileStudio Pro 13" }, -+ { WACOM_VENDOR_ID, 0x34E, 200000, 200000, &usbCintiqV5, "MobileStudio Pro 16" }, -+ { WACOM_VENDOR_ID, 0x34F, 200000, 200000, &usbCintiqV5, "Cintiq 13 FHD Pro" }, -+ { WACOM_VENDOR_ID, 0x350, 200000, 200000, &usbCintiqV5, "Cintiq 16 UHD Pro" }, -+ { WACOM_VENDOR_ID, 0x353, 200000, 200000, &usbCintiqV5, "Cintiq 13 FHD Pro" }, /* Touch */ -+ { WACOM_VENDOR_ID, 0x354, 200000, 200000, &usbCintiqV5, "Cintiq 16 UHD Pro" }, /* Touch */ - - { WACOM_VENDOR_ID, 0x90, 100000, 100000, &usbTabletPC, "TabletPC 0x90" }, - { WACOM_VENDOR_ID, 0x93, 100000, 100000, &usbTabletPC, "TabletPC 0x93" }, -diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c -index fd27264..0da5076 100644 ---- a/src/wcmValidateDevice.c -+++ b/src/wcmValidateDevice.c -@@ -309,6 +309,14 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo) - case 0x5D: /* DTH2242 Touch */ - case 0x5E: /* Cintiq 22HDT Touch */ - case 0x304:/* Cintiq 13HD */ -+ case 0x34A:/* MobileStudio Pro 13 Touch */ -+ case 0x34B:/* MobileStudio Pro 16 Touch */ -+ case 0x34D:/* MobileStudio Pro 13 */ -+ case 0x34E:/* MobileStudio Pro 13 */ -+ case 0x34F:/* Cintiq Pro 13 FHD */ -+ case 0x350:/* Cintiq Pro 16 UHD */ -+ case 0x353:/* Cintiq Pro 13 FHD Touch */ -+ case 0x354:/* Cintiq Pro 13 UHD Touch */ - TabletSetFeature(priv->common, WCM_LCD); - break; - } --- -2.13.6 - diff --git a/SOURCES/0001-conf-add-Dell-Canvas-27-touch.patch b/SOURCES/0001-conf-add-Dell-Canvas-27-touch.patch deleted file mode 100644 index 97e8717..0000000 --- a/SOURCES/0001-conf-add-Dell-Canvas-27-touch.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 48c2cd83ccf797fe618a48a743afee35883aecf9 Mon Sep 17 00:00:00 2001 -From: Benjamin Tissoires -Date: Fri, 3 Nov 2017 15:19:24 +0100 -Subject: [PATCH] conf: add Dell Canvas 27 touch - -The Dell canvas 27 is an external monitor with pen and touch, but the -pen is provided by Wacom, and the touch by Advanced Silicon. -To have proper touch arbitration, we need to force xf86-input-wacom -to also handle the touch part. - -Signed-off-by: Benjamin Tissoires -Reviewed-By: Jason Gerecke -Reviewed-by: Peter Hutterer -Signed-off-by: Peter Hutterer ---- - conf/70-wacom.conf | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/conf/70-wacom.conf b/conf/70-wacom.conf -index a20e3a3..86a3f90 100644 ---- a/conf/70-wacom.conf -+++ b/conf/70-wacom.conf -@@ -101,3 +101,12 @@ Section "InputClass" - Driver "wacom" - Option "Button2" "3" - EndSection -+ -+# Dell Canvas 27 (touch part is an Advanced Silicon, pen part a Wacom) -+Section "InputClass" -+ Identifier "Dell Canvas 27 Touch" -+ MatchUSBID "2575:0204" -+ MatchDevicePath "/dev/input/event*" -+ MatchIsTouchscreen "true" -+ Driver "wacom" -+EndSection --- -2.13.6 - diff --git a/SOURCES/0002-Allocate-4-buttons-for-stylus-devices-Pro-Pen-3D.patch b/SOURCES/0002-Allocate-4-buttons-for-stylus-devices-Pro-Pen-3D.patch deleted file mode 100644 index 43fa6a2..0000000 --- a/SOURCES/0002-Allocate-4-buttons-for-stylus-devices-Pro-Pen-3D.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 685850060f1cef064a90e02191d4732f275c7179 Mon Sep 17 00:00:00 2001 -From: Jason Gerecke -Date: Tue, 26 Dec 2017 14:21:17 -0800 -Subject: [PATCH] Allocate 4 buttons for stylus devices (Pro Pen 3D) - -The Pro Pen 3D includes a third stylus button, reported from the kernel -as BTN_STYLUS3. Support for this event was added earlier, but the number -of buttons allocated was not updated. This meant that although the X -driver would properly set the button flag bit to indicate that a button -should be sent, a userspace event wouldn't actually be sent. This commit -increases the number of buttons allocated, causing the third button to -emit X11 button number 8 when pressed. This button can also be configured -through xsetwacom now that the driver allocates the correct number. - -Fixes: 4a96a58f26 ("Add support for kernel's new BTN_STYLUS3 event") -Signed-off-by: Jason Gerecke -Reviewed-by: Ping Cheng ---- - src/wcmUSB.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/wcmUSB.c b/src/wcmUSB.c -index 9190fbe..1e4dc51 100644 ---- a/src/wcmUSB.c -+++ b/src/wcmUSB.c -@@ -167,7 +167,7 @@ static unsigned short padkey_codes [] = { - /* Fixed mapped stylus and mouse buttons */ - - #define WCM_USB_MAX_MOUSE_BUTTONS 5 --#define WCM_USB_MAX_STYLUS_BUTTONS 3 -+#define WCM_USB_MAX_STYLUS_BUTTONS 4 - - static unsigned short mouse_codes [] = { - BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, BTN_BACK, BTN_FORWARD, -@@ -480,7 +480,7 @@ static Bool usbWcmInit(InputInfoPtr pInfo, char* id, size_t id_len, float *versi - /* nbuttons tracks maximum buttons on all tools (stylus/mouse). - * - * Mouse support left, middle, right, side, and extra side button. -- * Stylus support tip and 2 stlyus buttons. -+ * Stylus support tip and 3 stylus buttons. - */ - if (ISBITSET (common->wcmKeys, BTN_TOOL_MOUSE)) - usbdata->nbuttons = WCM_USB_MAX_MOUSE_BUTTONS; --- -2.14.3 - diff --git a/SOURCES/0002-Support-DTH-1152-on-older-kernels.patch b/SOURCES/0002-Support-DTH-1152-on-older-kernels.patch deleted file mode 100644 index 71a5913..0000000 --- a/SOURCES/0002-Support-DTH-1152-on-older-kernels.patch +++ /dev/null @@ -1,51 +0,0 @@ -From eeb5d7456248cda28ba62fe2e4978bc25ff6086a Mon Sep 17 00:00:00 2001 -From: Aaron Armstrong Skomra -Date: Thu, 13 Jul 2017 12:08:03 -0700 -Subject: [PATCH 2/4] Support DTH-1152 on older kernels - -Signed-off-by: Aaron Armstrong Skomra -Reviewed-by: Peter Hutterer -(cherry picked from commit b0a055425dfb983163b1d3c673a36aebf9536430) ---- - src/wcmUSB.c | 4 +++- - src/wcmValidateDevice.c | 2 ++ - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/src/wcmUSB.c b/src/wcmUSB.c -index 295286a..0b5ec57 100644 ---- a/src/wcmUSB.c -+++ b/src/wcmUSB.c -@@ -91,7 +91,7 @@ DEFINE_MODEL(usbGraphire4, "USB Graphire4", 4); - DEFINE_MODEL(usbBamboo, "USB Bamboo", 4); - DEFINE_MODEL(usbBamboo1, "USB Bamboo1", 4); - DEFINE_MODEL(usbBambooFun, "USB BambooFun", 4); --DEFINE_MODEL(usbCintiq, "USB PL/Cintiq", 4); -+DEFINE_MODEL(usbCintiq, "USB PL/Cintiq/DTU", 4); - DEFINE_MODEL(usbCintiqPartner, "USB CintiqPartner", 4); - DEFINE_MODEL(usbIntuos, "USB Intuos1", 5); - DEFINE_MODEL(usbIntuos2, "USB Intuos2", 5); -@@ -232,6 +232,8 @@ static struct WacomModelDesc - { WACOM_VENDOR_ID, 0xC7, 100000, 100000, &usbCintiq, "DTU1931" }, - { WACOM_VENDOR_ID, 0xCE, 100000, 100000, &usbCintiq, "DTU2231" }, - { WACOM_VENDOR_ID, 0xF0, 100000, 100000, &usbCintiq, "DTU1631" }, -+ { WACOM_VENDOR_ID, 0x35a, 100000, 100000, &usbCintiq, "DTH1152" }, -+ { WACOM_VENDOR_ID, 0x368, 100000, 100000, &usbCintiq, "DTH1152" }, /* Touch */ - - { WACOM_VENDOR_ID, 0x41, 100000, 100000, &usbIntuos2, "Intuos2 4x5" }, - { WACOM_VENDOR_ID, 0x42, 100000, 100000, &usbIntuos2, "Intuos2 6x8" }, -diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c -index 0da5076..bfff8e7 100644 ---- a/src/wcmValidateDevice.c -+++ b/src/wcmValidateDevice.c -@@ -317,6 +317,8 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo) - case 0x350:/* Cintiq Pro 16 UHD */ - case 0x353:/* Cintiq Pro 13 FHD Touch */ - case 0x354:/* Cintiq Pro 13 UHD Touch */ -+ case 0x35A:/* DTH-1152*/ -+ case 0x368:/* DTH-1152 Touch */ - TabletSetFeature(priv->common, WCM_LCD); - break; - } --- -2.13.6 - diff --git a/SOURCES/0003-Add-support-for-2nd-generation-Intuos-Pro.patch b/SOURCES/0003-Add-support-for-2nd-generation-Intuos-Pro.patch deleted file mode 100644 index 17d1d93..0000000 --- a/SOURCES/0003-Add-support-for-2nd-generation-Intuos-Pro.patch +++ /dev/null @@ -1,35 +0,0 @@ -From aeda04439e615da71c61d9ffab020741b7149d8a Mon Sep 17 00:00:00 2001 -From: Jason Gerecke -Date: Thu, 10 Aug 2017 15:34:29 -0700 -Subject: [PATCH 3/4] Add support for 2nd-generation Intuos Pro - -This tablet is usable without this patch, but the device type is missing -the WCM_RING flag. This prevents the ring valuator from being initialized -correctly, and in turn causes recent versions of gnome-control-center to -not allow configuration of the ring. - -https://bugzilla.gnome.org/show_bug.cgi?id=785358 - -Signed-off-by: Jason Gerecke -Reviewed-by: Ping Cheng -(cherry picked from commit 1a2a23c2df0ec0fd0bf46432db58f32914a6a09f) ---- - src/wcmValidateDevice.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c -index bfff8e7..8eac0dd 100644 ---- a/src/wcmValidateDevice.c -+++ b/src/wcmValidateDevice.c -@@ -202,6 +202,8 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo) - TabletSetFeature(priv->common, WCM_DUALRING | WCM_LCD); - /* fall through */ - -+ case 0x357: /* Intuos Pro 2 M */ -+ case 0x358: /* Intuos Pro 2 L */ - case 0x314: /* Intuos Pro S */ - case 0x315: /* Intuos Pro M */ - case 0x317: /* Intuos Pro L */ --- -2.13.6 - diff --git a/SOURCES/0004-Correct-device-flags-for-multiple-devices.patch b/SOURCES/0004-Correct-device-flags-for-multiple-devices.patch deleted file mode 100644 index aedf5b5..0000000 --- a/SOURCES/0004-Correct-device-flags-for-multiple-devices.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 8bda3dad98f3e1d62bf4499ecb95e2692830adaa Mon Sep 17 00:00:00 2001 -From: Jason Gerecke -Date: Thu, 10 Aug 2017 15:35:43 -0700 -Subject: [PATCH 4/4] Correct device flags for multiple devices - -The device flags set in wcmDeviceTypeKeys must be set properly in order -for the driver to correctly identify and use specific tablet features. -Several devices are missing flags that e.g. indicate they support -pen rotation or have touch rings. - -Fixes: 0318b1c ("Support recent display devices on older kernels") -Fixes: 3578b91 ("Add support for Cintiq 22HDT and 13HD, DTK2241 and DTH2242.") -Fixes: df7f165 ("Add tablet_type to WacomModel") -Signed-off-by: Jason Gerecke -Reviewed-by: Ping Cheng -(cherry picked from commit b30e2d27fdb30ff4b425fc62432cab636fe163b9) ---- - src/wcmValidateDevice.c | 20 +++++++++++++------- - 1 file changed, 13 insertions(+), 7 deletions(-) - -diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c -index 8eac0dd..21ccd5f 100644 ---- a/src/wcmValidateDevice.c -+++ b/src/wcmValidateDevice.c -@@ -199,7 +199,12 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo) - { - case 0xF8: /* Cintiq 24HDT */ - case 0xF4: /* Cintiq 24HD */ -- TabletSetFeature(priv->common, WCM_DUALRING | WCM_LCD); -+ TabletSetFeature(priv->common, WCM_DUALRING); -+ /* fall through */ -+ -+ case 0x34D: /* MobileStudio Pro 13 */ -+ case 0x34E: /* MobileStudio Pro 13 */ -+ TabletSetFeature(priv->common, WCM_LCD); - /* fall through */ - - case 0x357: /* Intuos Pro 2 M */ -@@ -300,23 +305,24 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo) - case 0xED: /* TPC with 1FGT */ - case 0x90: /* TPC */ - case 0x97: /* TPC */ -+ case 0x9F: /* TPC */ - case 0xEF: /* TPC */ - TabletSetFeature(priv->common, WCM_TPC); - break; - -- case 0x9F: -+ case 0x304:/* Cintiq 13HD */ -+ case 0x34F:/* Cintiq Pro 13 FHD */ -+ case 0x350:/* Cintiq Pro 16 UHD */ -+ TabletSetFeature(priv->common, WCM_ROTATION); -+ /* fall-through */ -+ - case 0xF6: /* Cintiq 24HDT Touch */ - case 0x57: /* DTK2241 */ - case 0x59: /* DTH2242 Pen */ - case 0x5D: /* DTH2242 Touch */ - case 0x5E: /* Cintiq 22HDT Touch */ -- case 0x304:/* Cintiq 13HD */ - case 0x34A:/* MobileStudio Pro 13 Touch */ - case 0x34B:/* MobileStudio Pro 16 Touch */ -- case 0x34D:/* MobileStudio Pro 13 */ -- case 0x34E:/* MobileStudio Pro 13 */ -- case 0x34F:/* Cintiq Pro 13 FHD */ -- case 0x350:/* Cintiq Pro 16 UHD */ - case 0x353:/* Cintiq Pro 13 FHD Touch */ - case 0x354:/* Cintiq Pro 13 UHD Touch */ - case 0x35A:/* DTH-1152*/ --- -2.13.6 - diff --git a/SPECS/xorg-x11-drv-wacom.spec b/SPECS/xorg-x11-drv-wacom.spec index a126ed9..70768eb 100644 --- a/SPECS/xorg-x11-drv-wacom.spec +++ b/SPECS/xorg-x11-drv-wacom.spec @@ -8,8 +8,8 @@ Summary: Xorg X11 wacom input driver Name: xorg-x11-drv-wacom -Version: 0.34.2 -Release: 5%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Version: 0.36.1 +Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} URL: http://www.x.org License: GPLv2+ Group: User Interface/X Hardware Support @@ -19,23 +19,9 @@ Source0: %{tarball}-%{gitdate}.tar.bz2 Source1: make-git-snapshot.sh Source2: commitid %else -Source0: http://prdownloads.sourceforge.net/linuxwacom/xf86-input-wacom-%{version}.tar.bz2 +Source0: https://github.com/linuxwacom/xf86-input-wacom/releases/download/xf86-input-wacom-%{version}/xf86-input-wacom-%{version}.tar.bz2 %endif -Patch01: 0001-Introduce-Pressure2K-config-option-for-incompatible-.patch -# Bug 1496650 - Fix hang after unplugging a device -Patch02: 0001-Remove-the-device-s-fd-from-the-select-set-when-we-g.patch -# Bug 1496659 - Fix device flags for the 13HD, 22HDT and the 2nd gen Intuos Pro -Patch03: 0001-Support-recent-display-devices-on-older-kernels.patch -Patch04: 0002-Support-DTH-1152-on-older-kernels.patch -Patch05: 0003-Add-support-for-2nd-generation-Intuos-Pro.patch -Patch06: 0004-Correct-device-flags-for-multiple-devices.patch -Patch07: 0001-conf-add-Dell-Canvas-27-touch.patch - -# Bug 1557255 - Add support for the Wacom Pro Pen 3D -Patch08: 0001-Add-support-for-kernel-s-new-BTN_STYLUS3-event.patch -Patch09: 0002-Allocate-4-buttons-for-stylus-devices-Pro-Pen-3D.patch - ExcludeArch: s390 s390x BuildRequires: xorg-x11-server-devel >= 1.10.99.902 @@ -55,15 +41,6 @@ X.Org X11 wacom input driver for Wacom tablets. %prep %setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}} -%patch01 -p1 -%patch02 -p1 -%patch03 -p1 -%patch04 -p1 -%patch05 -p1 -%patch06 -p1 -%patch07 -p1 -%patch08 -p1 -%patch09 -p1 %build autoreconf --force -v --install || exit 1 @@ -90,7 +67,7 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) -%doc AUTHORS README GPL +%doc AUTHORS GPL %if !0%{?gitdate} # ChangeLog is autogenerated by make dist, we don't run it from git builds %doc ChangeLog @@ -125,6 +102,9 @@ X.Org X11 wacom input driver development files. %{_bindir}/isdv4-serial-debugger %changelog +* Tue May 15 2018 Peter Hutterer 0.36.1-1 +- wacom 0.36.1 (#1564630) + * Thu Apr 05 2018 Peter Hutterer 0.34.2-5 - Add support for the Pro Pen 3D (#1557255)