[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-input-synaptics: Changes to 'ubuntu'



 debian/changelog                  |    6 +
 debian/patches/116_xi2_1.patch    |   78 +++++++---------
 debian/patches/117_gestures.patch |  177 +++++++++++++++++++-------------------
 3 files changed, 133 insertions(+), 128 deletions(-)

New commits:
commit bdec4bb6bb291cd893015ff1496b687e484d8e01
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Tue Mar 15 16:17:31 2011 -0400

    Disable SemiMultitouch devices, we don't support them yet (LP: #723905)

diff --git a/debian/changelog b/debian/changelog
index f5762c8..4945206 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-synaptics (1.3.99+git20110116.0e27ce3a-0ubuntu8) UNRELEASED; urgency=low
+
+  * Disable SemiMultitouch devices, we don't support them yet (LP: #723905)
+
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Tue, 15 Mar 2011 16:16:21 -0400
+
 xserver-xorg-input-synaptics (1.3.99+git20110116.0e27ce3a-0ubuntu7) natty; urgency=low
 
   * Set event window correctly for global gesture event
diff --git a/debian/patches/116_xi2_1.patch b/debian/patches/116_xi2_1.patch
index b59e29f..c1833f7 100644
--- a/debian/patches/116_xi2_1.patch
+++ b/debian/patches/116_xi2_1.patch
@@ -1,5 +1,3 @@
-diff --git a/configure.ac b/configure.ac
-index 155c6dc..537b4c0 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -101,6 +101,9 @@ case "${host}" in
@@ -12,8 +10,6 @@ index 155c6dc..537b4c0 100644
  	;;
  *freebsd* | *openbsd* | *netbsd* | *dragonfly*)
  	AC_MSG_RESULT([psmcomm])
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 980ab5e..2150292 100644
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
 @@ -40,6 +40,7 @@ AM_CFLAGS = $(XORG_CFLAGS)
@@ -24,8 +20,6 @@ index 980ab5e..2150292 100644
  endif
  
  if BUILD_PSMCOMM
-diff --git a/src/alpscomm.c b/src/alpscomm.c
-index 84d2136..94cdc58 100644
 --- a/src/alpscomm.c
 +++ b/src/alpscomm.c
 @@ -230,6 +230,9 @@ ALPSAutoDevProbe(InputInfoPtr pInfo)
@@ -38,8 +32,6 @@ index 84d2136..94cdc58 100644
      ALPSQueryHardware,
      ALPSReadHwState,
      ALPSAutoDevProbe,
-diff --git a/src/eventcomm.c b/src/eventcomm.c
-index 4593bba..86e8192 100644
 --- a/src/eventcomm.c
 +++ b/src/eventcomm.c
 @@ -41,6 +41,8 @@
@@ -51,7 +43,7 @@ index 4593bba..86e8192 100644
  
  
  #define SYSCALL(call) while (((call) == -1) && (errno == EINTR))
-@@ -55,16 +57,115 @@
+@@ -55,16 +57,116 @@
   *	Function Definitions
   ****************************************************************************/
  
@@ -74,6 +66,7 @@ index 4593bba..86e8192 100644
 +    ecpriv = priv->proto_data;
 +    ecpriv->need_grab = TRUE;
 +    ecpriv->num_touches = 10;
++    ecpriv->cur_slot = -1;
 +
 +    SYSCALL(rc = ioctl(pInfo->fd, EVIOCGABS(ABS_MT_SLOT), &abs));
 +    if (rc >= 0 && abs.maximum > 0)
@@ -86,7 +79,8 @@ index 4593bba..86e8192 100644
 +        
 +    return Success;
 +}
-+
+ 
+-    need_grab = (BOOL*)priv->proto_data;
 +static Bool
 +EventDeviceInitHook(DeviceIntPtr dev)
 +{
@@ -160,8 +154,7 @@ index 4593bba..86e8192 100644
 +    ecpriv->touch_mask = NULL;
 +    return !Success;
 +}
- 
--    need_grab = (BOOL*)priv->proto_data;
++
 +static void
 +EventDeviceOnHook(InputInfoPtr pInfo, SynapticsParameters *para)
 +{
@@ -172,16 +165,18 @@ index 4593bba..86e8192 100644
  
      if (para->grab_event_device) {
  	/* Try to grab the event device so that data don't leak to /dev/input/mice */
-@@ -76,7 +177,48 @@ EventDeviceOnHook(InputInfoPtr pInfo, SynapticsParameters *para)
+@@ -76,7 +178,50 @@ EventDeviceOnHook(InputInfoPtr pInfo, Sy
  	}
      }
  
 -    *need_grab = FALSE;
 +    ecpriv->need_grab = FALSE;
 +
-+    SYSCALL(rc = ioctl(pInfo->fd, EVIOCGABS(ABS_MT_SLOT), &abs));
-+    if (rc >= 0)
-+        ecpriv->cur_slot = abs.value;
++    if (priv->has_touch) {
++        SYSCALL(rc = ioctl(pInfo->fd, EVIOCGABS(ABS_MT_SLOT), &abs));
++        if (rc >= 0)
++            ecpriv->cur_slot = abs.value;
++    }
 +
 +    ecpriv->mtdev = malloc(sizeof(struct mtdev));
 +    if (!ecpriv->mtdev)
@@ -222,7 +217,7 @@ index 4593bba..86e8192 100644
  }
  
  static Bool
-@@ -171,11 +313,13 @@ static void
+@@ -171,11 +316,14 @@ static void
  event_query_axis_ranges(InputInfoPtr pInfo)
  {
      SynapticsPrivate *priv = (SynapticsPrivate *)pInfo->private;
@@ -233,12 +228,13 @@ index 4593bba..86e8192 100644
      char buf[256];
 -    int rc;
 +    int i, rc;
++    uint8_t prop;
 +
 +    memset(ecpriv->absbits, 0, sizeof(ecpriv->absbits));
  
      SYSCALL(rc = ioctl(pInfo->fd, EVIOCGABS(ABS_X), &abs));
      if (rc >= 0)
-@@ -207,11 +351,12 @@ event_query_axis_ranges(InputInfoPtr pInfo)
+@@ -207,11 +355,12 @@ event_query_axis_ranges(InputInfoPtr pIn
  
      priv->has_pressure = FALSE;
      priv->has_width = FALSE;
@@ -254,11 +250,16 @@ index 4593bba..86e8192 100644
      }
      else
  	xf86Msg(X_ERROR, "%s: failed to query ABS bits (%s)\n", pInfo->name,
-@@ -270,15 +415,29 @@ event_query_axis_ranges(InputInfoPtr pInfo)
+@@ -270,15 +419,34 @@ event_query_axis_ranges(InputInfoPtr pIn
  
  	xf86Msg(X_PROBED, "%s: buttons:%s\n", pInfo->name, buf);
      }
 +
++    /* We don't support SemiMultitouch devices yet. */
++    SYSCALL(rc = ioctl(pInfo->fd, EVIOCGPROP(sizeof(prop)), &prop));
++    if (rc >= 0 && (prop & INPUT_PROP_SEMI_MT))
++        return;
++
 +    for (i = ABS_MT_TOUCH_MAJOR; i <= ABS_MT_PRESSURE; i++) {
 +	if (!BitIsOn(ecpriv->absbits, i))
 +            continue;
@@ -286,7 +287,7 @@ index 4593bba..86e8192 100644
  	return FALSE;
  
      xf86Msg(X_PROBED, "%s: touchpad found\n", pInfo->name);
-@@ -286,13 +445,49 @@ EventQueryHardware(InputInfoPtr pInfo)
+@@ -286,13 +454,49 @@ EventQueryHardware(InputInfoPtr pInfo)
      return TRUE;
  }
  
@@ -337,7 +338,7 @@ index 4593bba..86e8192 100644
      if (len <= 0)
      {
          /* We use X_NONE here because it doesn't alloc */
-@@ -316,6 +511,7 @@ EventReadHwState(InputInfoPtr pInfo,
+@@ -316,6 +520,7 @@ EventReadHwState(InputInfoPtr pInfo,
      struct SynapticsHwState *hw = &(comm->hwState);
      SynapticsPrivate *priv = (SynapticsPrivate *)pInfo->private;
      SynapticsParameters *para = &priv->synpara;
@@ -345,7 +346,7 @@ index 4593bba..86e8192 100644
  
      while (SynapticsReadEvent(pInfo, &ev)) {
  	switch (ev.type) {
-@@ -331,6 +527,7 @@ EventReadHwState(InputInfoPtr pInfo,
+@@ -331,6 +536,7 @@ EventReadHwState(InputInfoPtr pInfo,
  		else
  		    hw->numFingers = 0;
  		*hwRet = *hw;
@@ -353,13 +354,16 @@ index 4593bba..86e8192 100644
  		return TRUE;
  	    }
  	case EV_KEY:
-@@ -404,6 +601,52 @@ EventReadHwState(InputInfoPtr pInfo,
+@@ -404,6 +610,55 @@ EventReadHwState(InputInfoPtr pInfo,
  	    case ABS_TOOL_WIDTH:
  		hw->fingerWidth = ev.value;
  		break;
 +            case ABS_MT_SLOT:
-+                ProcessTouch(pInfo, priv);
-+                ecpriv->cur_slot = ev.value;
++                if (priv->has_touch)
++                {
++                    ProcessTouch(pInfo, priv);
++                    ecpriv->cur_slot = ev.value;
++                }
 +                break;
 +            case ABS_MT_TRACKING_ID:
 +                if (ecpriv->cur_slot < 0)
@@ -406,7 +410,7 @@ index 4593bba..86e8192 100644
  	    }
  	    break;
  	}
-@@ -423,9 +666,9 @@ static void
+@@ -423,9 +678,9 @@ static void
  EventReadDevDimensions(InputInfoPtr pInfo)
  {
      SynapticsPrivate *priv = (SynapticsPrivate *)pInfo->private;
@@ -418,7 +422,7 @@ index 4593bba..86e8192 100644
  	event_query_axis_ranges(pInfo);
      event_query_info(pInfo);
  }
-@@ -482,8 +725,11 @@ EventAutoDevProbe(InputInfoPtr pInfo)
+@@ -482,8 +737,11 @@ EventAutoDevProbe(InputInfoPtr pInfo)
  }
  
  struct SynapticsProtocolOperations event_proto_operations = {
@@ -431,8 +435,6 @@ index 4593bba..86e8192 100644
      EventQueryHardware,
      EventReadHwState,
      EventAutoDevProbe,
-diff --git a/src/eventcomm.h b/src/eventcomm.h
-index 8fd7bcb..f3d94ba 100644
 --- a/src/eventcomm.h
 +++ b/src/eventcomm.h
 @@ -29,9 +29,31 @@
@@ -467,8 +469,6 @@ index 8fd7bcb..f3d94ba 100644
 +} EventcommPrivate;
 +
  #endif /* _EVENTCOMM_H_ */
-diff --git a/src/ps2comm.c b/src/ps2comm.c
-index 4e372b3..0878f7c 100644
 --- a/src/ps2comm.c
 +++ b/src/ps2comm.c
 @@ -668,7 +668,10 @@ PS2AutoDevProbe(InputInfoPtr pInfo)
@@ -482,11 +482,9 @@ index 4e372b3..0878f7c 100644
      PS2QueryHardware,
      PS2ReadHwState,
      PS2AutoDevProbe,
-diff --git a/src/synaptics.c b/src/synaptics.c
-index 88bd024..b6e3c47 100644
 --- a/src/synaptics.c
 +++ b/src/synaptics.c
-@@ -723,6 +723,10 @@ SynapticsPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
+@@ -730,6 +730,10 @@ SynapticsPreInit(InputDriverPtr drv, Inp
      priv->tap_button_state = TBS_BUTTON_UP;
      priv->touch_on.millis = 0;
  
@@ -497,7 +495,7 @@ index 88bd024..b6e3c47 100644
      /* read hardware dimensions */
      ReadDevDimensions(pInfo);
  
-@@ -899,6 +903,9 @@ DeviceClose(DeviceIntPtr dev)
+@@ -906,6 +910,9 @@ DeviceClose(DeviceIntPtr dev)
      InputInfoPtr pInfo = dev->public.devicePrivate;
      SynapticsPrivate *priv = (SynapticsPrivate *) pInfo->private;
  
@@ -507,7 +505,7 @@ index 88bd024..b6e3c47 100644
      RetValue = DeviceOff(dev);
      TimerFree(priv->timer);
      priv->timer = NULL;
-@@ -1077,6 +1084,9 @@ DeviceInit(DeviceIntPtr dev)
+@@ -1084,6 +1091,9 @@ DeviceInit(DeviceIntPtr dev)
      InitDeviceProperties(pInfo);
      XIRegisterPropertyHandler(pInfo->dev, SetProperty, NULL, NULL);
  
@@ -517,8 +515,6 @@ index 88bd024..b6e3c47 100644
      return Success;
  }
  
-diff --git a/src/synapticsstr.h b/src/synapticsstr.h
-index 9ad8638..e8113ac 100644
 --- a/src/synapticsstr.h
 +++ b/src/synapticsstr.h
 @@ -22,6 +22,8 @@
@@ -530,7 +526,7 @@ index 9ad8638..e8113ac 100644
  #include "synproto.h"
  
  #ifdef DBG
-@@ -236,6 +238,7 @@ typedef struct _SynapticsPrivateRec
+@@ -238,6 +240,7 @@ typedef struct _SynapticsPrivateRec
      Bool has_pressure;			/* device reports pressure */
      Bool has_width;			/* device reports finger width */
      Bool has_scrollbuttons;		/* device has physical scrollbuttons */
@@ -538,8 +534,6 @@ index 9ad8638..e8113ac 100644
  
      enum TouchpadModel model;          /* The detected model */
  } SynapticsPrivate;
-diff --git a/src/synproto.h b/src/synproto.h
-index 96ddf3e..4d5f510 100644
 --- a/src/synproto.h
 +++ b/src/synproto.h
 @@ -83,8 +83,11 @@ struct SynapticsHwInfo;
@@ -554,7 +548,7 @@ index 96ddf3e..4d5f510 100644
      Bool (*QueryHardware)(InputInfoPtr pInfo);
      Bool (*ReadHwState)(InputInfoPtr pInfo,
  			struct SynapticsProtocolOperations *proto_ops,
-@@ -102,5 +105,4 @@ extern struct SynapticsProtocolOperations psm_proto_operations;
+@@ -102,5 +105,4 @@ extern struct SynapticsProtocolOperation
  #endif /* BUILD_PSMCOMM */
  extern struct SynapticsProtocolOperations alps_proto_operations;
  
diff --git a/debian/patches/117_gestures.patch b/debian/patches/117_gestures.patch
index 2f81788..59759b5 100644
--- a/debian/patches/117_gestures.patch
+++ b/debian/patches/117_gestures.patch
@@ -34,9 +34,9 @@
  
  
  #define SYSCALL(call) while (((call) == -1) && (errno == EINTR))
-@@ -183,28 +184,13 @@ EventDeviceOnHook(InputInfoPtr pInfo, Sy
-     if (rc >= 0)
-         ecpriv->cur_slot = abs.value;
+@@ -186,28 +187,13 @@ EventDeviceOnHook(InputInfoPtr pInfo, Sy
+             ecpriv->cur_slot = abs.value;
+     }
  
 -    ecpriv->mtdev = malloc(sizeof(struct mtdev));
 -    if (!ecpriv->mtdev)
@@ -65,7 +65,7 @@
  }
  
  static void
-@@ -482,9 +468,8 @@ SynapticsReadEvent(InputInfoPtr pInfo, s
+@@ -491,9 +477,8 @@ SynapticsReadEvent(InputInfoPtr pInfo, s
      int rc = TRUE;
      ssize_t len;
  
@@ -77,7 +77,7 @@
      else
          len = read(pInfo->fd, ev, sizeof(*ev));
  
-@@ -494,163 +479,179 @@ SynapticsReadEvent(InputInfoPtr pInfo, s
+@@ -503,166 +488,182 @@ SynapticsReadEvent(InputInfoPtr pInfo, s
          if (errno != EAGAIN)
              xf86MsgVerb(X_NONE, 0, "%s: Read error %s\n", pInfo->name, strerror(errno));
          rc = FALSE;
@@ -123,83 +123,6 @@
 -		else
 -		    hw->numFingers = 0;
 -		*hwRet = *hw;
--                ProcessTouch(pInfo, priv);
--		return TRUE;
--	    }
--	case EV_KEY:
--	    v = (ev.value ? TRUE : FALSE);
--	    switch (ev.code) {
--	    case BTN_LEFT:
--		hw->left = v;
--		break;
--	    case BTN_RIGHT:
--		hw->right = v;
--		break;
--	    case BTN_MIDDLE:
--		hw->middle = v;
--		break;
--	    case BTN_FORWARD:
--		hw->up = v;
--		break;
--	    case BTN_BACK:
--		hw->down = v;
--		break;
--	    case BTN_0:
--		hw->multi[0] = v;
--		break;
--	    case BTN_1:
--		hw->multi[1] = v;
--		break;
--	    case BTN_2:
--		hw->multi[2] = v;
--		break;
--	    case BTN_3:
--		hw->multi[3] = v;
--		break;
--	    case BTN_4:
--		hw->multi[4] = v;
--		break;
--	    case BTN_5:
--		hw->multi[5] = v;
--		break;
--	    case BTN_6:
--		hw->multi[6] = v;
--		break;
--	    case BTN_7:
--		hw->multi[7] = v;
--		break;
--	    case BTN_TOOL_FINGER:
--		comm->oneFinger = v;
--		break;
--	    case BTN_TOOL_DOUBLETAP:
--		comm->twoFingers = v;
--		break;
--	    case BTN_TOOL_TRIPLETAP:
--		comm->threeFingers = v;
--		break;
--	    case BTN_TOUCH:
--		if (!priv->has_pressure)
--			hw->z = v ? para->finger_high + 1 : 0;
--		break;
--	    }
--	    break;
--	case EV_ABS:
--	    switch (ev.code) {
--	    case ABS_X:
--		hw->x = ev.value;
--		break;
--	    case ABS_Y:
--		hw->y = ev.value;
--		break;
--	    case ABS_PRESSURE:
--		hw->z = ev.value;
--		break;
--	    case ABS_TOOL_WIDTH:
--		hw->fingerWidth = ev.value;
--		break;
--            case ABS_MT_SLOT:
--                ProcessTouch(pInfo, priv);
--                ecpriv->cur_slot = ev.value;
 +    switch (ev->type) {
 +    case EV_SYN:
 +        switch (ev->code) {
@@ -288,8 +211,90 @@
 +            hw->fingerWidth = ev->value;
 +            break;
 +        case ABS_MT_SLOT:
-+            ProcessTouch(pInfo, priv);
-+            ecpriv->cur_slot = ev->value;
++            if (priv->has_touch)
++            {
+                 ProcessTouch(pInfo, priv);
+-		return TRUE;
+-	    }
+-	case EV_KEY:
+-	    v = (ev.value ? TRUE : FALSE);
+-	    switch (ev.code) {
+-	    case BTN_LEFT:
+-		hw->left = v;
+-		break;
+-	    case BTN_RIGHT:
+-		hw->right = v;
+-		break;
+-	    case BTN_MIDDLE:
+-		hw->middle = v;
+-		break;
+-	    case BTN_FORWARD:
+-		hw->up = v;
+-		break;
+-	    case BTN_BACK:
+-		hw->down = v;
+-		break;
+-	    case BTN_0:
+-		hw->multi[0] = v;
+-		break;
+-	    case BTN_1:
+-		hw->multi[1] = v;
+-		break;
+-	    case BTN_2:
+-		hw->multi[2] = v;
+-		break;
+-	    case BTN_3:
+-		hw->multi[3] = v;
+-		break;
+-	    case BTN_4:
+-		hw->multi[4] = v;
+-		break;
+-	    case BTN_5:
+-		hw->multi[5] = v;
+-		break;
+-	    case BTN_6:
+-		hw->multi[6] = v;
+-		break;
+-	    case BTN_7:
+-		hw->multi[7] = v;
+-		break;
+-	    case BTN_TOOL_FINGER:
+-		comm->oneFinger = v;
+-		break;
+-	    case BTN_TOOL_DOUBLETAP:
+-		comm->twoFingers = v;
+-		break;
+-	    case BTN_TOOL_TRIPLETAP:
+-		comm->threeFingers = v;
+-		break;
+-	    case BTN_TOUCH:
+-		if (!priv->has_pressure)
+-			hw->z = v ? para->finger_high + 1 : 0;
+-		break;
+-	    }
+-	    break;
+-	case EV_ABS:
+-	    switch (ev.code) {
+-	    case ABS_X:
+-		hw->x = ev.value;
+-		break;
+-	    case ABS_Y:
+-		hw->y = ev.value;
+-		break;
+-	    case ABS_PRESSURE:
+-		hw->z = ev.value;
+-		break;
+-	    case ABS_TOOL_WIDTH:
+-		hw->fingerWidth = ev.value;
+-		break;
+-            case ABS_MT_SLOT:
+-                if (priv->has_touch)
+-                {
+-                    ProcessTouch(pInfo, priv);
+-                    ecpriv->cur_slot = ev.value;
+-                }
++                ecpriv->cur_slot = ev->value;
++            }
 +            break;
 +        case ABS_MT_TRACKING_ID:
 +            if (ecpriv->cur_slot < 0)
@@ -375,7 +380,7 @@
 +            break;
 +        }
 +        break;
-     }
++    }
 +
 +    return FALSE;
 +}
@@ -392,7 +397,7 @@
 +    while (SynapticsReadEvent(pInfo, &ev)) {
 +        if (EventProcessEvent(pInfo, comm, hwRet, &ev) && !ecpriv->grail)
 +            return TRUE;
-+    }
+     }
 +
      return FALSE;
  }


Reply to: