summaryrefslogtreecommitdiffstats
path: root/package/x11r7/xdriver_xf86-input-evdev
diff options
context:
space:
mode:
authorPeter Korsgaard <jacmet@sunsite.dk>2008-06-30 12:55:29 +0000
committerPeter Korsgaard <jacmet@sunsite.dk>2008-06-30 12:55:29 +0000
commitd4e56ff4dc8a0528550eb8503956bdcddb2fe516 (patch)
tree2d6f8114da90ab526a5d7595c55ad8559de64366 /package/x11r7/xdriver_xf86-input-evdev
parentaf593cbceefb461c8c089395ff257c05cd290af7 (diff)
downloadbuildroot-novena-d4e56ff4dc8a0528550eb8503956bdcddb2fe516.tar.gz
buildroot-novena-d4e56ff4dc8a0528550eb8503956bdcddb2fe516.zip
packages: fix xorg to compile modular and tiny versions
Based on googlecode r558 by John Voltz.
Diffstat (limited to 'package/x11r7/xdriver_xf86-input-evdev')
-rw-r--r--package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-10-bitfield-fixes.patch324
-rw-r--r--package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-11-bitops-fixes.patch42
-rw-r--r--package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-20-add-inotify-architectures.patch29
-rw-r--r--package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-30-absolute-axis.patch31
-rw-r--r--package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-40-close-fd.patch18
-rw-r--r--package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-50-xinput.patch21
6 files changed, 465 insertions, 0 deletions
diff --git a/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-10-bitfield-fixes.patch b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-10-bitfield-fixes.patch
new file mode 100644
index 000000000..e2748724a
--- /dev/null
+++ b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-10-bitfield-fixes.patch
@@ -0,0 +1,324 @@
+From: Zephaniah E. Hull <warp@aehallh.com>
+Date: Sun, 14 May 2006 11:55:50 +0000 (+0000)
+Subject: Tweak credits and references.
+X-Git-Tag: xf86-video-impact-0_2_0
+X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/driver/xf86-input-evdev.git;a=commitdiff;h=e9c60da89a9c55b81b2dedcf6ee3d1aefb4ff591
+
+Tweak credits and references.
+Change the longs to unsigned longs in the bitfields.
+Cleanup our includes.
+Stop pulling in asm/types.h and asm/bitops.h.
+Conditionally define the stuff that used to come from the above, including
+ our own test_bit, set_bit and clear_bit.
+Change the longs to unsigned longs in the bitfields.
+Change the longs to unsigned longs in the bitfields.
+Use the bitop defines in evdev.h properly.
+Change the longs to unsigned longs in the bitfields.
+Change the longs to unsigned longs in the bitfields.
+Use the bitop defines in evdev.h properly.
+Change the longs to unsigned longs in the bitfields.
+Use the bitop defines in evdev.h properly.
+Add HPPA/HPPA64 entries. (Thanks to Fabio M. Di Nitto
+ <fabbione@ubuntu.com>)
+---
+
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,37 @@
++2006-05-14 Zephaniah E. Hull <warp@aehallh.com>
++
++ * man/evdev.man:
++ Tweak credits and references.
++ * src/evdev.c: (EvdevParseBits), (EvdevParseBitOption),
++ (EvdevCorePreInit):
++ Change the longs to unsigned longs in the bitfields.
++
++ Cleanup our includes.
++ * src/evdev.h:
++ Stop pulling in asm/types.h and asm/bitops.h.
++
++ Conditionally define the stuff that used to come from
++ the above, including our own test_bit, set_bit and clear_bit.
++
++ Change the longs to unsigned longs in the bitfields.
++ * src/evdev_axes.c: (EvdevAxisAbsNew), (EvdevAxisRelNew):
++ Change the longs to unsigned longs in the bitfields.
++
++ Use the bitop defines in evdev.h properly.
++ * src/evdev_brain.c: (MatchAll), (MatchNot), (MatchAny):
++ Change the longs to unsigned longs in the bitfields.
++ * src/evdev_btn.c: (EvdevBtnNew):
++ Change the longs to unsigned longs in the bitfields.
++
++ Use the bitop defines in evdev.h properly.
++ * src/evdev_key.c: (EvdevKeyNew):
++ Change the longs to unsigned longs in the bitfields.
++
++ Use the bitop defines in evdev.h properly.
++ * src/inotify-syscalls.h:
++ Add HPPA/HPPA64 entries. (Thanks to Fabio M. Di Nitto
++ <fabbione@ubuntu.com>)
++
+ 2006-04-30 Zephaniah E. Hull <warp@aehallh.com>
+
+ * configure.ac:
+--- a/src/evdev.c
++++ b/src/evdev.c
+@@ -61,8 +61,6 @@
+ #include <X11/XF86keysym.h>
+ #include <X11/extensions/XIproto.h>
+
+-#include <string.h>
+-
+ #include "evdev.h"
+
+ #include <xf86.h>
+@@ -328,7 +326,7 @@ EvdevNew(evdevDriverPtr driver, evdevDev
+ }
+
+ static void
+-EvdevParseBits (char *in, long *out, int len)
++EvdevParseBits (char *in, unsigned long *out, int len)
+ {
+ unsigned long v[2];
+ int n, i, max_bits = len * BITS_PER_LONG;
+@@ -351,7 +349,7 @@ EvdevParseBits (char *in, long *out, int
+ }
+
+ static void
+-EvdevParseBitOption (char *opt, long *all, long *not, long *any, int len)
++EvdevParseBitOption (char *opt, unsigned long *all, unsigned long *not, unsigned long *any, int len)
+ {
+ char *cur, *next;
+
+@@ -395,7 +393,7 @@ EvdevCorePreInit(InputDriverPtr drv, IDe
+ EvdevParseBitOption (tmp, pEvdev->all_bits.field, \
+ pEvdev->not_bits.field, \
+ pEvdev->any_bits.field, \
+- sizeof(pEvdev->not_bits.field) / sizeof (long)); \
++ sizeof(pEvdev->not_bits.field) / sizeof (unsigned long)); \
+ free (tmp); \
+ }
+ bitoption(ev);
+--- a/src/evdev.h
++++ b/src/evdev.h
+@@ -72,20 +72,29 @@
+ #include <stdarg.h>
+ #include <xf86Xinput.h>
+
++#ifndef BITS_PER_LONG
+ #define BITS_PER_LONG (sizeof(long) * 8)
++#endif
++
+ #define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
+-#define OFF(x) ((x)%BITS_PER_LONG)
+-#define LONG(x) ((x)/BITS_PER_LONG)
+-#define BIT(x) (1UL<<((x)%BITS_PER_LONG))
+-#define test_bit(bit, array) ((array[LONG(bit)] >> OFF(bit)) & 1)
++#define LONG(x) ((x) >> (sizeof(unsigned long) + 1))
++#define MASK(x) (1 << ((x) & (sizeof (unsigned long) * 8 - 1)))
++
++#ifndef test_bit
++#define test_bit(bit, array) (array[LONG(bit)] & MASK(bit))
++#endif
++#ifndef set_bit
++#define set_bit(bit, array) (array[LONG(bit)] |= MASK(bit))
++#endif
++#ifndef clear_bit
++#define clear_bit(bit, array) (array[LONG(bit)] &= ~MASK(bit))
++#endif
+
+ /* 2.4 compatibility */
+ #ifndef EVIOCGSW
+
+ #include <sys/time.h>
+ #include <sys/ioctl.h>
+-#include <asm/types.h>
+-#include <asm/bitops.h>
+
+ #define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len) /* get all switch states */
+
+@@ -128,14 +137,14 @@
+ #define EVDEV_MAXBUTTONS 96
+
+ typedef struct {
+- long ev[NBITS(EV_MAX)];
+- long key[NBITS(KEY_MAX)];
+- long rel[NBITS(REL_MAX)];
+- long abs[NBITS(ABS_MAX)];
+- long msc[NBITS(MSC_MAX)];
+- long led[NBITS(LED_MAX)];
+- long snd[NBITS(SND_MAX)];
+- long ff[NBITS(FF_MAX)];
++ unsigned long ev[NBITS(EV_MAX)];
++ unsigned long key[NBITS(KEY_MAX)];
++ unsigned long rel[NBITS(REL_MAX)];
++ unsigned long abs[NBITS(ABS_MAX)];
++ unsigned long msc[NBITS(MSC_MAX)];
++ unsigned long led[NBITS(LED_MAX)];
++ unsigned long snd[NBITS(SND_MAX)];
++ unsigned long ff[NBITS(FF_MAX)];
+ } evdevBitsRec, *evdevBitsPtr;
+
+ typedef struct {
+--- a/src/evdev_axes.c
++++ b/src/evdev_axes.c
+@@ -49,14 +49,6 @@
+
+ #include <xf86_OSproc.h>
+
+-#define ArrayLength(a) (sizeof(a) / (sizeof((a)[0])))
+-
+-#define BITS_PER_LONG (sizeof(long) * 8)
+-#define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
+-#define OFF(x) ((x)%BITS_PER_LONG)
+-#define LONG(x) ((x)/BITS_PER_LONG)
+-#define TestBit(bit, array) ((array[LONG(bit)] >> OFF(bit)) & 1)
+-
+ static char *rel_axis_names[] = {
+ "X",
+ "Y",
+@@ -328,7 +320,7 @@ EvdevAxisAbsNew(InputInfoPtr pInfo)
+
+ real_axes = 0;
+ for (i = 0; i < ABS_MAX; i++)
+- if (TestBit (i, pEvdev->bits.abs))
++ if (test_bit (i, pEvdev->bits.abs))
+ real_axes++;
+
+ if (!real_axes)
+@@ -344,7 +336,7 @@ EvdevAxisAbsNew(InputInfoPtr pInfo)
+ pInfo->conversion_proc = EvdevConvert;
+
+ for (i = 0, j = 0; i < ABS_MAX; i++) {
+- if (!TestBit (i, pEvdev->bits.abs))
++ if (!test_bit (i, pEvdev->bits.abs))
+ continue;
+
+ snprintf(option, sizeof(option), "%sAbsoluteAxisMap", abs_axis_names[i]);
+@@ -389,7 +381,7 @@ EvdevAxisAbsNew(InputInfoPtr pInfo)
+ xf86Msg(X_CONFIG, "%s: Unknown Mode: %s.\n", pInfo->name, s);
+ }
+
+- if (TestBit (ABS_X, pEvdev->bits.abs) && TestBit (ABS_Y, pEvdev->bits.abs))
++ if (test_bit (ABS_X, pEvdev->bits.abs) && test_bit (ABS_Y, pEvdev->bits.abs))
+ k = xf86SetIntOption(pInfo->options, "AbsoluteScreen", 0);
+ else
+ k = xf86SetIntOption(pInfo->options, "AbsoluteScreen", -1);
+@@ -417,7 +409,7 @@ EvdevAxisRelNew(InputInfoPtr pInfo)
+
+ real_axes = 0;
+ for (i = 0; i < REL_MAX; i++)
+- if (TestBit (i, pEvdev->bits.rel))
++ if (test_bit (i, pEvdev->bits.rel))
+ real_axes++;
+
+ if (!real_axes && (!state->abs || state->abs->axes < 2))
+@@ -434,7 +426,7 @@ EvdevAxisRelNew(InputInfoPtr pInfo)
+ pInfo->conversion_proc = EvdevConvert;
+
+ for (i = 0, j = 0; i < REL_MAX; i++) {
+- if (!TestBit (i, pEvdev->bits.rel))
++ if (!test_bit (i, pEvdev->bits.rel))
+ continue;
+
+ snprintf(option, sizeof(option), "%sRelativeAxisMap", rel_axis_names[i]);
+--- a/src/evdev_brain.c
++++ b/src/evdev_brain.c
+@@ -86,7 +86,7 @@ typedef struct {
+ } evdevDevInfoRec, *evdevDevInfoPtr;
+
+ static Bool
+-MatchAll (long *dev, long *match, int len)
++MatchAll (unsigned long *dev, unsigned long *match, int len)
+ {
+ int i;
+
+@@ -98,7 +98,7 @@ MatchAll (long *dev, long *match, int le
+ }
+
+ static Bool
+-MatchNot (long *dev, long *match, int len)
++MatchNot (unsigned long *dev, unsigned long *match, int len)
+ {
+ int i;
+
+@@ -110,7 +110,7 @@ MatchNot (long *dev, long *match, int le
+ }
+
+ static Bool
+-MatchAny (long *dev, long *match, int len)
++MatchAny (unsigned long *dev, unsigned long *match, int len)
+ {
+ int i, found = 0;
+
+--- a/src/evdev_btn.c
++++ b/src/evdev_btn.c
+@@ -51,15 +51,6 @@
+
+ #include <xf86Module.h>
+
+-
+-#define ArrayLength(a) (sizeof(a) / (sizeof((a)[0])))
+-
+-#define BITS_PER_LONG (sizeof(long) * 8)
+-#define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
+-#define OFF(x) ((x)%BITS_PER_LONG)
+-#define LONG(x) ((x)/BITS_PER_LONG)
+-#define TestBit(bit, array) ((array[LONG(bit)] >> OFF(bit)) & 1)
+-
+ void
+ EvdevBtnPostFakeClicks(InputInfoPtr pInfo, int button, int count)
+ {
+@@ -186,7 +177,7 @@ EvdevBtnNew(InputInfoPtr pInfo)
+ state->btn = Xcalloc (sizeof (evdevBtnRec));
+
+ for (i = BTN_MISC; i < (KEY_OK - 1); i++)
+- if (TestBit (i, pEvdev->bits.key)) {
++ if (test_bit (i, pEvdev->bits.key)) {
+ bit = i;
+ if ((bit >= BTN_MOUSE) && (bit < BTN_JOYSTICK)) {
+ bit -= BTN_MOUSE - BTN_MISC;
+--- a/src/evdev_key.c
++++ b/src/evdev_key.c
+@@ -81,11 +81,6 @@
+
+
+ #define ArrayLength(a) (sizeof(a) / (sizeof((a)[0])))
+-#define BITS_PER_LONG (sizeof(long) * 8)
+-#define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
+-#define OFF(x) ((x)%BITS_PER_LONG)
+-#define LONG(x) ((x)/BITS_PER_LONG)
+-#define TestBit(bit, array) ((array[LONG(bit)] >> OFF(bit)) & 1)
+
+ #define MIN_KEYCODE 8
+ #define GLYPHS_PER_KEY 2
+@@ -356,13 +351,13 @@ EvdevKeyNew (InputInfoPtr pInfo)
+ int i, keys = 0;
+
+ for (i = 0; i <= KEY_UNKNOWN; i++)
+- if (TestBit (i, pEvdev->bits.key)) {
++ if (test_bit (i, pEvdev->bits.key)) {
+ keys = 1;
+ break;
+ }
+ if (!keys)
+ for (i = KEY_OK; i <= KEY_MAX; i++)
+- if (TestBit (i, pEvdev->bits.key)) {
++ if (test_bit (i, pEvdev->bits.key)) {
+ keys = 1;
+ break;
+ }
+--- a/src/inotify-syscalls.h
++++ b/src/inotify-syscalls.h
+@@ -39,6 +39,10 @@
+ # define __NR_inotify_init 290
+ # define __NR_inotify_add_watch 291
+ # define __NR_inotify_rm_watch 292
++#elif defined (__hppa__) || defined (__hppa64__)
++# define __NR_inotify_init 269
++# define __NR_inotify_add_watch 270
++# define __NR_inotify_rm_watch 271
+ #else
+ # error "Unsupported architecture!"
+ #endif
diff --git a/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-11-bitops-fixes.patch b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-11-bitops-fixes.patch
new file mode 100644
index 000000000..91240faa3
--- /dev/null
+++ b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-11-bitops-fixes.patch
@@ -0,0 +1,42 @@
+From: Zephaniah E. Hull <warp@aehallh.com>
+Date: Mon, 15 May 2006 22:47:23 +0000 (+0000)
+Subject: Hopefully fix the bitops stuff to actually _work_.
+X-Git-Tag: xf86-video-impact-0_2_0
+X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/driver/xf86-input-evdev.git;a=commitdiff;h=1b03250797daa0ac98323a9f43e895dd0b5c7761
+
+Hopefully fix the bitops stuff to actually _work_.
+---
+
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,8 @@
++2006-05-15 Zephaniah E. Hull,,, <warp@aehallh.com>
++
++ * src/evdev.h:
++ Hopefully fix the bitops stuff to actually _work_.
++
+ 2006-05-14 Zephaniah E. Hull <warp@aehallh.com>
+
+ * man/evdev.man:
+--- a/src/evdev.h
++++ b/src/evdev.h
+@@ -73,15 +73,15 @@
+ #include <xf86Xinput.h>
+
+ #ifndef BITS_PER_LONG
+-#define BITS_PER_LONG (sizeof(long) * 8)
++#define BITS_PER_LONG (sizeof(unsigned long) * 8)
+ #endif
+
+ #define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
+-#define LONG(x) ((x) >> (sizeof(unsigned long) + 1))
+-#define MASK(x) (1 << ((x) & (sizeof (unsigned long) * 8 - 1)))
++#define LONG(x) ((x)/BITS_PER_LONG)
++#define MASK(x) (1UL << ((x) & (BITS_PER_LONG - 1)))
+
+ #ifndef test_bit
+-#define test_bit(bit, array) (array[LONG(bit)] & MASK(bit))
++#define test_bit(bit, array) (!!(array[LONG(bit)] & MASK(bit)))
+ #endif
+ #ifndef set_bit
+ #define set_bit(bit, array) (array[LONG(bit)] |= MASK(bit))
diff --git a/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-20-add-inotify-architectures.patch b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-20-add-inotify-architectures.patch
new file mode 100644
index 000000000..a70832568
--- /dev/null
+++ b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-20-add-inotify-architectures.patch
@@ -0,0 +1,29 @@
+Index: xserver-xorg-input-evdev/src/inotify-syscalls.h
+===================================================================
+--- xserver-xorg-input-evdev.orig/src/inotify-syscalls.h 2006-11-01 19:37:12.000000000 +1100
++++ xserver-xorg-input-evdev/src/inotify-syscalls.h 2006-11-01 19:59:51.000000000 +1100
+@@ -43,6 +43,24 @@
+ # define __NR_inotify_init 269
+ # define __NR_inotify_add_watch 270
+ # define __NR_inotify_rm_watch 271
++#elif defined (__mips__)
++# if _MIPS_SIM == _MIPS_SIM_ABI32
++# define __NR_inotify_init 4284
++# define __NR_inotify_add_watch 4285
++# define __NR_inotify_rm_watch 4286
++# elif _MIPS_SIM == _MIPS_SIM_NABI32
++# define __NR_inotify_init 6247
++# define __NR_inotify_add_watch 6248
++# define __NR_inotify_rm_watch 6249
++# elif _MIPS_SIM == _MIPS_SIM_ABI64
++# define __NR_inotify_init 5243
++# define __NR_inotify_add_watch 5244
++# define __NR_inotify_rm_watch 5245
++# endif
++#elif defined (__mc68000__)
++# define __NR_inotify_init 284
++# define __NR_inotify_add_watch 285
++# define __NR_inotify_rm_watch 286
+ #else
+ # error "Unsupported architecture!"
+ #endif
diff --git a/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-30-absolute-axis.patch b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-30-absolute-axis.patch
new file mode 100644
index 000000000..5b3737eca
--- /dev/null
+++ b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-30-absolute-axis.patch
@@ -0,0 +1,31 @@
+From: Adam Jackson <ajax@nwnk.net>
+Date: Fri, 2 Jun 2006 19:39:52 +0000 (+0000)
+Subject: Fix an obvious bogon to avoid crashing on absolute axis setup.
+X-Git-Tag: xf86-video-impact-0_2_0
+X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/driver/xf86-input-evdev.git;a=commitdiff;h=57a7f2844108072bf03c9f82baf92e3447d18fbe
+
+Fix an obvious bogon to avoid crashing on absolute axis setup.
+---
+
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,8 @@
++2006-06-02 Adam Jackson <ajax@freedesktop.org>
++
++ * src/evdev_axes.c:
++ Fix an obvious bogon to avoid crashing on absolute axis setup.
++
+ 2006-05-15 Zephaniah E. Hull,,, <warp@aehallh.com>
+
+ * src/evdev.h:
+--- a/src/evdev_axes.c
++++ b/src/evdev_axes.c
+@@ -385,7 +385,7 @@ EvdevAxisAbsNew(InputInfoPtr pInfo)
+ k = xf86SetIntOption(pInfo->options, "AbsoluteScreen", 0);
+ else
+ k = xf86SetIntOption(pInfo->options, "AbsoluteScreen", -1);
+- if (k < screenInfo.numScreens) {
++ if (k < screenInfo.numScreens && k >= 0) {
+ state->abs->screen = k;
+ xf86Msg(X_CONFIG, "%s: AbsoluteScreen: %d.\n", pInfo->name, k);
+ } else {
diff --git a/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-40-close-fd.patch b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-40-close-fd.patch
new file mode 100644
index 000000000..e00042406
--- /dev/null
+++ b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-40-close-fd.patch
@@ -0,0 +1,18 @@
+From: Zephaniah E. Hull <warp@agamemnon.b5>
+Date: Tue, 11 Jul 2006 07:08:30 +0000 (-0400)
+Subject: Set pInfo->fd to -1 when we close it in EvdevProc.
+X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/driver/xf86-input-evdev.git;a=commitdiff;h=eba5ea8d5a19f2b1984cbf20c95d22e243f19567
+
+Set pInfo->fd to -1 when we close it in EvdevProc.
+---
+
+--- a/src/evdev.c
++++ b/src/evdev.c
+@@ -200,6 +200,7 @@ EvdevProc(DeviceIntPtr device, int what)
+ RemoveEnabledDevice (pInfo->fd);
+ xf86RemoveSIGIOHandler (pInfo->fd);
+ close (pInfo->fd);
++ pInfo->fd = -1;
+
+ if (pEvdev->state.axes)
+ EvdevAxesOff (device);
diff --git a/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-50-xinput.patch b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-50-xinput.patch
new file mode 100644
index 000000000..d38f56689
--- /dev/null
+++ b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-50-xinput.patch
@@ -0,0 +1,21 @@
+--- a/src/evdev.c 2008-06-23 08:40:50.000000000 -0400
++++ b/src/evdev.c 2008-06-23 08:42:00.000000000 -0400
+@@ -233,10 +233,6 @@ EvdevSwitchMode (ClientPtr client, Devic
+ else
+ return !Success;
+ break;
+- case SendCoreEvents:
+- case DontSendCoreEvents:
+- xf86XInputSetSendCoreEvents (pInfo, (mode == SendCoreEvents));
+- break;
+ default:
+ return !Success;
+ }
+@@ -263,7 +259,6 @@ EvdevNew(evdevDriverPtr driver, evdevDev
+ pInfo->device_control = EvdevProc;
+ pInfo->read_input = EvdevReadInput;
+ pInfo->switch_mode = EvdevSwitchMode;
+- pInfo->motion_history_proc = xf86GetMotionEvents;
+ pInfo->conf_idev = driver->dev;
+
+ pInfo->private = device;