[PATCH synaptics 4/4] When resetting, reset the open slots to -1

Peter Hutterer peter.hutterer at who-t.net
Sun Sep 14 19:03:41 PDT 2014


open_slots holds the slot index, resetting it to 0 is a bad idea. And make
sure that we do reset after DEVICE_INIT. We already do so on DEVICE_CLOSE, but
after the first DEVICE_ON the data could still be random.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 src/synaptics.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/synaptics.c b/src/synaptics.c
index ace0ec7..8e6022a 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1026,6 +1026,8 @@ error:
 static void
 SynapticsReset(SynapticsPrivate * priv)
 {
+    int i;
+
     SynapticsResetHwState(priv->hwState);
     SynapticsResetHwState(priv->local_hw_state);
     SynapticsResetHwState(priv->comm.hwState);
@@ -1055,7 +1057,9 @@ SynapticsReset(SynapticsPrivate * priv)
     priv->prev_z = 0;
     priv->prevFingers = 0;
     priv->num_active_touches = 0;
-    memset(priv->open_slots, 0, priv->num_slots * sizeof(int));
+
+    for (i = 0; i < priv->num_slots; i++)
+        priv->open_slots[i] = -1;
 }
 
 static int
@@ -1352,6 +1356,8 @@ DeviceInit(DeviceIntPtr dev)
     InitDeviceProperties(pInfo);
     XIRegisterPropertyHandler(pInfo->dev, SetProperty, NULL, NULL);
 
+    SynapticsReset(priv);
+
     return Success;
 
  fail:
-- 
1.9.3



More information about the xorg-devel mailing list