Don't update properties from within the input thread
This commit is contained in:
parent
10079b648b
commit
42c9b4cc03
108
0001-Revert-to-update-properties-with-a-timer-func.patch
Normal file
108
0001-Revert-to-update-properties-with-a-timer-func.patch
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
From cd53371e9a4a7ea64ba805dafa92f2e48528a938 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Date: Thu, 23 Feb 2017 09:33:24 +1000
|
||||||
|
Subject: [PATCH] Revert to update properties with a timer func
|
||||||
|
|
||||||
|
This was required when we only had the SIGIO handler because sending events
|
||||||
|
allocates memory and things break. Now with the input thread we *can* send
|
||||||
|
events from within the thread but it can mess up other delivery.
|
||||||
|
|
||||||
|
https://bugs.freedesktop.org/show_bug.cgi?id=99887
|
||||||
|
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
---
|
||||||
|
src/wcmXCommand.c | 29 +++++++++++++----------------
|
||||||
|
1 file changed, 13 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/wcmXCommand.c b/src/wcmXCommand.c
|
||||||
|
index df7fcea..0e1d657 100644
|
||||||
|
--- a/src/wcmXCommand.c
|
||||||
|
+++ b/src/wcmXCommand.c
|
||||||
|
@@ -656,20 +656,22 @@ wcmSetHWTouchProperty(InputInfoPtr pInfo)
|
||||||
|
prop->size, &prop_value, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if !HAVE_THREADED_INPUT
|
||||||
|
static CARD32
|
||||||
|
touchTimerFunc(OsTimerPtr timer, CARD32 now, pointer arg)
|
||||||
|
{
|
||||||
|
InputInfoPtr pInfo = arg;
|
||||||
|
+#if !HAVE_THREADED_INPUT
|
||||||
|
int sigstate = xf86BlockSIGIO();
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
wcmSetHWTouchProperty(pInfo);
|
||||||
|
|
||||||
|
+#if !HAVE_THREADED_INPUT
|
||||||
|
xf86UnblockSIGIO(sigstate);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update HW touch property when its state is changed by touch switch
|
||||||
|
@@ -684,14 +686,10 @@ wcmUpdateHWTouchProperty(WacomDevicePtr priv, int hw_touch)
|
||||||
|
|
||||||
|
common->wcmHWTouchSwitchState = hw_touch;
|
||||||
|
|
||||||
|
-#if HAVE_THREADED_INPUT
|
||||||
|
- wcmSetHWTouchProperty(priv->pInfo);
|
||||||
|
-#else
|
||||||
|
- /* This function is called during SIGIO. Schedule timer for property
|
||||||
|
- * event delivery outside of signal handler. */
|
||||||
|
+ /* This function is called during SIGIO/InputThread. Schedule timer
|
||||||
|
+ * for property event delivery by the main thread. */
|
||||||
|
priv->touch_timer = TimerSet(priv->touch_timer, 0 /* reltime */,
|
||||||
|
1, touchTimerFunc, priv->pInfo);
|
||||||
|
-#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -1074,20 +1072,23 @@ wcmSetSerialProperty(InputInfoPtr pInfo)
|
||||||
|
prop->size, prop_value, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if !HAVE_THREADED_INPUT
|
||||||
|
static CARD32
|
||||||
|
serialTimerFunc(OsTimerPtr timer, CARD32 now, pointer arg)
|
||||||
|
{
|
||||||
|
InputInfoPtr pInfo = arg;
|
||||||
|
+
|
||||||
|
+#if !HAVE_THREADED_INPUT
|
||||||
|
int sigstate = xf86BlockSIGIO();
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
wcmSetSerialProperty(pInfo);
|
||||||
|
|
||||||
|
+#if !HAVE_THREADED_INPUT
|
||||||
|
xf86UnblockSIGIO(sigstate);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
void
|
||||||
|
wcmUpdateSerial(InputInfoPtr pInfo, unsigned int serial, int id)
|
||||||
|
@@ -1100,14 +1101,10 @@ wcmUpdateSerial(InputInfoPtr pInfo, unsigned int serial, int id)
|
||||||
|
priv->cur_serial = serial;
|
||||||
|
priv->cur_device_id = id;
|
||||||
|
|
||||||
|
-#if HAVE_THREADED_INPUT
|
||||||
|
- wcmSetSerialProperty(pInfo);
|
||||||
|
-#else
|
||||||
|
- /* This function is called during SIGIO. Schedule timer for property
|
||||||
|
- * event delivery outside of signal handler. */
|
||||||
|
+ /* This function is called during SIGIO/InputThread. Schedule timer
|
||||||
|
+ * for property event delivery by the main thread. */
|
||||||
|
priv->serial_timer = TimerSet(priv->serial_timer, 0 /* reltime */,
|
||||||
|
1, serialTimerFunc, pInfo);
|
||||||
|
-#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
@ -9,7 +9,7 @@
|
|||||||
Summary: Xorg X11 wacom input driver
|
Summary: Xorg X11 wacom input driver
|
||||||
Name: xorg-x11-drv-wacom
|
Name: xorg-x11-drv-wacom
|
||||||
Version: 0.34.0
|
Version: 0.34.0
|
||||||
Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
|
Release: 3%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
|
||||||
URL: http://www.x.org
|
URL: http://www.x.org
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: User Interface/X Hardware Support
|
Group: User Interface/X Hardware Support
|
||||||
@ -22,6 +22,8 @@ Source2: commitid
|
|||||||
Source0: http://prdownloads.sourceforge.net/linuxwacom/xf86-input-wacom-%{version}.tar.bz2
|
Source0: http://prdownloads.sourceforge.net/linuxwacom/xf86-input-wacom-%{version}.tar.bz2
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
Patch01: 0001-Revert-to-update-properties-with-a-timer-func.patch
|
||||||
|
|
||||||
ExcludeArch: s390 s390x
|
ExcludeArch: s390 s390x
|
||||||
|
|
||||||
BuildRequires: xorg-x11-server-devel >= 1.10.99.902
|
BuildRequires: xorg-x11-server-devel >= 1.10.99.902
|
||||||
@ -41,6 +43,7 @@ X.Org X11 wacom input driver for Wacom tablets.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}}
|
%setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}}
|
||||||
|
%patch01 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf --force -v --install || exit 1
|
autoreconf --force -v --install || exit 1
|
||||||
@ -93,6 +96,9 @@ X.Org X11 wacom input driver development files.
|
|||||||
%{_bindir}/isdv4-serial-debugger
|
%{_bindir}/isdv4-serial-debugger
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Feb 23 2017 Peter Hutterer <peter.hutterer@redhat.com> 0.34.0-3
|
||||||
|
- Don't update properties from within the input thread
|
||||||
|
|
||||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.34.0-2
|
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.34.0-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user