[PATCH synaptics] Support XINPUT ABI version 23

Peter Hutterer peter.hutterer at who-t.net
Thu Jun 2 00:05:42 UTC 2016


Use input_lock/input_unlock calls instead of SIGIO functions

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 src/synaptics.c    | 12 +++++++++---
 src/synapticsstr.h |  4 ++++
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/synaptics.c b/src/synaptics.c
index 70b7f3b..bdc9605 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1601,9 +1601,11 @@ timerFunc(OsTimerPtr timer, CARD32 now, pointer arg)
     SynapticsPrivate *priv = (SynapticsPrivate *) (pInfo->private);
     struct SynapticsHwState *hw = priv->local_hw_state;
     int delay;
-    int sigstate;
-
-    sigstate = xf86BlockSIGIO();
+#if !HAVE_THREADED_INPUT
+    int sigstate = xf86BlockSIGIO();
+#else
+    input_lock();
+#endif
 
     priv->hwState->millis += now - priv->timer_time;
     SynapticsCopyHwState(hw, priv->hwState);
@@ -1613,7 +1615,11 @@ timerFunc(OsTimerPtr timer, CARD32 now, pointer arg)
     priv->timer_time = now;
     priv->timer = TimerSet(priv->timer, 0, delay, timerFunc, pInfo);
 
+#if !HAVE_THREADED_INPUT
     xf86UnblockSIGIO(sigstate);
+#else
+    input_unlock();
+#endif
 
     return 0;
 }
diff --git a/src/synapticsstr.h b/src/synapticsstr.h
index f8ab14e..905b78b 100644
--- a/src/synapticsstr.h
+++ b/src/synapticsstr.h
@@ -36,6 +36,10 @@
 #define NO_DRIVER_SCALING 1
 #endif
 
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 23
+#define HAVE_THREADED_INPUT 1
+#endif
+
 #ifdef DBG
 #undef DBG
 #endif
-- 
2.7.4



More information about the xorg-devel mailing list