summaryrefslogtreecommitdiff
path: root/meta/packages/xorg-xserver
diff options
context:
space:
mode:
authorMarcin Juszkiewicz <hrw@openedhand.com>2008-04-23 10:29:06 +0000
committerMarcin Juszkiewicz <hrw@openedhand.com>2008-04-23 10:29:06 +0000
commitff2e381fd7fb8db0c13382ecf968bb6cb100e88a (patch)
tree240178210ae87b5987ec4250ec511316678fb6bc /meta/packages/xorg-xserver
parent6543b12207ff258e65429665198677e2130351c8 (diff)
downloadopenembedded-core-ff2e381fd7fb8db0c13382ecf968bb6cb100e88a.tar.gz
openembedded-core-ff2e381fd7fb8db0c13382ecf968bb6cb100e88a.tar.bz2
openembedded-core-ff2e381fd7fb8db0c13382ecf968bb6cb100e88a.zip
xserver-kdrive: added 1.4.99.901 (1.5-rc) from OE
- moved common (1.3.0.0/1.4.99.901) patches to xserver-kdrive TODO: merge xmodmap and "-mouse tslib" from OE git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4317 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/xorg-xserver')
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/enable-epson.patch17
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/enable-tslib.patch24
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/epson.patch11
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fbdev-evdev.patch19
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fbdev-not-fix.patch14
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fix_default_mode.patch26
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/keyboard-resume-workaround.patch16
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/kmode-palm.patch34
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/kmode.patch28
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/linux-keyboard-mediumraw.patch44
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/no_xkb.patch12
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/optional-xkb.patch58
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/tslib-default-device.patch15
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-autofoo.patch54
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-fix-offscreen-bmp.patch15
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-new-input-world-order.patch28
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100.patch6335
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/xcalibrate-new-input-world-order.patch159
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/xorg-avr32-support.diff19
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/disable-apm.patch (renamed from meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/disable-apm.patch)0
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/disable-xf86-dga-xorgcfg.patch (renamed from meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/disable-xf86-dga-xorgcfg.patch)0
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/no-serial-probing.patch (renamed from meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/no-serial-probing.patch)0
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive_1.4.99.901.bb43
23 files changed, 6971 insertions, 0 deletions
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/enable-epson.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/enable-epson.patch
new file mode 100644
index 0000000000..0fffd71dce
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/enable-epson.patch
@@ -0,0 +1,17 @@
+Index: xorg-server-1.4/hw/kdrive/Makefile.am
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/Makefile.am 2007-08-30 01:48:57.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/Makefile.am 2007-09-06 23:24:29.000000000 +0200
+@@ -1,10 +1,10 @@
+ if KDRIVEVESA
+-VESA_SUBDIRS = vesa ati chips epson i810 mach64 mga nvidia pm2 r128 \
++VESA_SUBDIRS = vesa ati chips i810 mach64 mga nvidia pm2 r128 \
+ smi via
+ endif
+
+ if BUILD_KDRIVEFBDEVLIB
+-FBDEV_SUBDIRS = fbdev
++FBDEV_SUBDIRS = fbdev epson
+ endif
+
+ if XFAKESERVER
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/enable-tslib.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/enable-tslib.patch
new file mode 100644
index 0000000000..0519b3093a
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/enable-tslib.patch
@@ -0,0 +1,24 @@
+--- /tmp/configure.ac 2008-04-16 10:52:15.016442542 +0200
++++ xorg-server-1.4.99.901/configure.ac 2008-04-16 10:54:23.786428934 +0200
+@@ -1925,7 +1925,7 @@
+ AC_CHECK_LIB([rt], [nanosleep], XEPHYR_LIBS="$XEPHYR_LIBS -lrt"))
+
+ if test "x$TSLIB" = xyes; then
+- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
++ PKG_CHECK_MODULES([TSLIB], [tslib-1.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
+ if test "x$HAVE_TSLIB" = xno; then
+ AC_MSG_ERROR([tslib must be installed to build the tslib driver. See http://tslib.berlios.de/])
+ fi
+@@ -1949,10 +1949,10 @@
+ ;;
+ esac
+ KDRIVE_STUB_LIB='$(top_builddir)/hw/kdrive/src/libkdrivestubs.a'
+- KDRIVE_LOCAL_LIBS="$TSLIB_LIBS $DIX_LIB $KDRIVE_LIB $KDRIVE_STUB_LIB $CONFIG_LIB"
++ KDRIVE_LOCAL_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_STUB_LIB $CONFIG_LIB"
+ KDRIVE_LOCAL_LIBS="$KDRIVE_LOCAL_LIBS $FB_LIB $MI_LIB $KDRIVE_PURE_LIBS"
+ KDRIVE_LOCAL_LIBS="$KDRIVE_LOCAL_LIBS $KDRIVE_OS_LIB $OS_LIB"
+- KDRIVE_LIBS="$KDRIVE_LOCAL_LIBS $XSERVER_SYS_LIBS"
++ KDRIVE_LIBS="$TSLIB_LIBS $KDRIVE_LOCAL_LIBS $XSERVER_SYS_LIBS"
+
+ # check if we can build Xephyr
+ PKG_CHECK_MODULES(XEPHYR, $XEPHYR_REQUIRED_LIBS, [xephyr="yes"], [xephyr="no"])
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/epson.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/epson.patch
new file mode 100644
index 0000000000..07009bdc40
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/epson.patch
@@ -0,0 +1,11 @@
+--- xserver.orig/hw/kdrive/epson/epson13806stub.c 2004-10-20 10:20:51.000000000 +0200
++++ xserver/hw/kdrive/epson/epson13806stub.c 2005-03-17 14:38:22.000000000 +0100
+@@ -55,7 +55,7 @@
+ {
+ KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
+ #ifdef TOUCHSCREEN
+- KdInitTouchScreen (&TsFuncs);
++ KdAddMouseDriver (&TsFuncs);
+ #endif
+ }
+
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fbdev-evdev.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fbdev-evdev.patch
new file mode 100644
index 0000000000..5f9b21b627
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fbdev-evdev.patch
@@ -0,0 +1,19 @@
+Index: xorg-server-1.4/hw/kdrive/fbdev/fbinit.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/fbdev/fbinit.c 2007-09-08 21:27:44.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/fbdev/fbinit.c 2007-09-08 21:28:55.000000000 +0200
+@@ -46,11 +46,13 @@
+
+ KdAddKeyboardDriver (&LinuxKeyboardDriver);
+ KdAddPointerDriver (&LinuxMouseDriver);
++ KdAddKeyboardDriver (&LinuxEvdevKeyboardDriver);
++ KdAddPointerDriver (&LinuxEvdevMouseDriver);
+ #ifdef TSLIB
+ KdAddPointerDriver (&TsDriver);
+ #endif
+
+- ki = KdParseKeyboard ("keybd");
++ ki = KdParseKeyboard ("keyboard");
+ KdAddKeyboard(ki);
+
+ KdInitInput ();
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fbdev-not-fix.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fbdev-not-fix.patch
new file mode 100644
index 0000000000..f87e7cc2cd
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fbdev-not-fix.patch
@@ -0,0 +1,14 @@
+--- xserver/hw/kdrive/fbdev/fbdev.c~ 2004-09-15 00:08:10.000000000 +0100
++++ xserver/hw/kdrive/fbdev/fbdev.c 2004-11-13 17:47:02.000000000 +0000
+@@ -198,6 +198,11 @@
+ return FALSE;
+ }
+
++ /* Re-get the "fixed" parameters since they might have changed */
++ k = ioctl (priv->fd, FBIOGET_FSCREENINFO, &priv->fix);
++ if (k < 0)
++ perror ("FBIOGET_FSCREENINFO");
++
+ /* Now get the new screeninfo */
+ ioctl (priv->fd, FBIOGET_VSCREENINFO, &priv->var);
+ depth = priv->var.bits_per_pixel;
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fix_default_mode.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fix_default_mode.patch
new file mode 100644
index 0000000000..edc5146302
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/fix_default_mode.patch
@@ -0,0 +1,26 @@
+---
+ hw/kdrive/src/kmode.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: xorg-server-1.3.0.0/hw/kdrive/src/kmode.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kmode.c 2007-05-16 10:30:29.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/src/kmode.c 2007-05-16 10:31:08.000000000 +0100
+@@ -106,6 +106,8 @@ const KdMonitorTiming kdMonitorTimings[
+ 16, 120, 176, KdSyncNegative, /* 37.861 */
+ 1, 20, 24, KdSyncNegative, /* 72.809 */
+ },
++ /* DEFAULT */
++#define MONITOR_TIMING_DEFAULT 13
+ { 640, 480, 60, 25175, /* VESA */
+ 16, 48, 160, KdSyncNegative, /* 31.469 */
+ 10, 33, 45, KdSyncNegative, /* 59.940 */
+@@ -127,8 +129,6 @@ const KdMonitorTiming kdMonitorTimings[
+ 16, 160, 256, KdSyncPositive, /* 46.875 */
+ 1, 21, 25, KdSyncPositive, /* 75.000 */
+ },
+- /* DEFAULT */
+-#define MONITOR_TIMING_DEFAULT 9
+ { 800, 600, 72, 50000, /* VESA */
+ 56, 64, 240, KdSyncPositive, /* 48.077 */
+ 37, 23, 66, KdSyncPositive, /* 72.188 */
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/keyboard-resume-workaround.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/keyboard-resume-workaround.patch
new file mode 100644
index 0000000000..4964ff5479
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/keyboard-resume-workaround.patch
@@ -0,0 +1,16 @@
+Index: xorg-server-1.4/hw/kdrive/linux/keyboard.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/linux/keyboard.c 2007-09-29 18:31:15.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/linux/keyboard.c 2007-09-29 18:33:02.000000000 +0200
+@@ -743,11 +743,6 @@
+ cfsetispeed(&nTty, 9600);
+ cfsetospeed(&nTty, 9600);
+ tcsetattr(fd, TCSANOW, &nTty);
+- /*
+- * Flush any pending keystrokes
+- */
+- while ((n = read (fd, buf, sizeof (buf))) > 0)
+- ;
+ KdRegisterFd (fd, LinuxKeyboardRead, ki);
+ return Success;
+ }
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/kmode-palm.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/kmode-palm.patch
new file mode 100644
index 0000000000..255e707b55
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/kmode-palm.patch
@@ -0,0 +1,34 @@
+--- kmode.c 2006-05-03 19:48:42.000000000 +0200
++++ xserver/hw/kdrive/src/kmode.c 2006-05-03 19:50:43.000000000 +0200
+@@ -32,6 +32,31 @@
+ /* H V Hz KHz */
+ /* FP BP BLANK POLARITY */
+
++ /* Treo 650 */
++
++ { 320, 320, 64, 16256,
++ 17, 12, 32, KdSyncNegative,
++ 1, 11, 14, KdSyncNegative,
++ },
++
++ { 320, 320, 64, 0,
++ 0, 0, 0, KdSyncNegative,
++ 0, 0, 0, KdSyncNegative,
++ },
++
++ /* LifeDrive/T3/TX modes */
++
++ { 320, 480, 64, 16256,
++ 17, 12, 32, KdSyncNegative,
++ 1, 11, 14, KdSyncNegative,
++ },
++
++ { 480, 320, 64, 0,
++ 0, 0, 0, KdSyncNegative,
++ 0, 0, 0, KdSyncNegative,
++ },
++
++
+ /* IPAQ modeline:
+ *
+ * Modeline "320x240" 5.7222 320 337 340 352 240 241 244 254"
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/kmode.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/kmode.patch
new file mode 100644
index 0000000000..5ad3e4e277
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/kmode.patch
@@ -0,0 +1,28 @@
+--- /tmp/kmode.c 2005-06-27 14:46:19.716843288 +0200
++++ xserver/hw/kdrive/src/kmode.c 2005-06-27 14:46:30.070269328 +0200
+@@ -41,6 +41,11 @@
+ 1, 11, 14, KdSyncNegative,
+ },
+
++ { 240, 320, 64, 0,
++ 0, 0, 0, KdSyncNegative,
++ 0, 0, 0, KdSyncNegative,
++ },
++
+ /* Other VESA modes */
+ { 640, 350, 85, 31500, /* VESA */
+ 32, 96, 192, KdSyncPositive, /* 26.413 */
+@@ -80,6 +85,13 @@
+ 16, 48, 160, KdSyncNegative, /* 31.469 */
+ 10, 33, 45, KdSyncNegative, /* 59.940 */
+ },
++
++
++ { 480, 640, 60, 0, /* VESA */
++ 0, 0, 0, KdSyncNegative, /* 31.469 */
++ 0, 0, 0, KdSyncNegative, /* 59.940 */
++ },
++
+
+ /* 800x600 modes */
+ { 800, 600, 85, 56250, /* VESA */
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/linux-keyboard-mediumraw.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/linux-keyboard-mediumraw.patch
new file mode 100644
index 0000000000..36d2f8eae8
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/linux-keyboard-mediumraw.patch
@@ -0,0 +1,44 @@
+Index: git/hw/kdrive/linux/keyboard.c
+===================================================================
+--- git.orig/hw/kdrive/linux/keyboard.c 2007-11-14 21:30:45.000000000 +0000
++++ git/hw/kdrive/linux/keyboard.c 2007-11-15 12:00:11.000000000 +0000
+@@ -42,6 +42,8 @@
+ #include <sys/ioctl.h>
+
+ extern int LinuxConsoleFd;
++static unsigned char mediumraw_data, mediumraw_up;
++static enum { DEFAULT, EXTBYTE1, EXTBYTE2 } mediumraw_state = DEFAULT;
+
+ static const KeySym linux_to_x[256] = {
+ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
+@@ -701,7 +703,29 @@
+ else
+ #endif
+ scancode = b[0] & 0x7f;
+- KdEnqueueKeyboardEvent (closure, scancode, b[0] & 0x80);
++ /* This is extended medium raw mode interpreter
++ see linux/drivers/keyboard.c (kbd->kbdmode == VC_MEDIUMRAW) */
++ switch (mediumraw_state)
++ {
++ case DEFAULT:
++ if (scancode == 0)
++ {
++ mediumraw_state = EXTBYTE1;
++ mediumraw_up = b[0] & 0x80;
++ }
++ else
++ KdEnqueueKeyboardEvent (closure, scancode, b[0] & 0x80);
++ break;
++ case EXTBYTE1:
++ mediumraw_data = scancode;
++ mediumraw_state = EXTBYTE2;
++ break;
++ case EXTBYTE2:
++ /* Note: Only codes < 256 will pass correctly through KdEnqueueKeyboardEvent() */
++ KdEnqueueKeyboardEvent (closure, (int)mediumraw_data << 7 | scancode, mediumraw_up);
++ mediumraw_state = DEFAULT;
++ break;
++ }
+ b++;
+ }
+ }
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/no_xkb.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/no_xkb.patch
new file mode 100644
index 0000000000..779aa2d6ef
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/no_xkb.patch
@@ -0,0 +1,12 @@
+--- dix/devices.c~ 2008-04-16 13:01:08.000000000 +0200
++++ dix/devices.c 2008-04-16 13:01:08.000000000 +0200
+@@ -527,8 +527,8 @@
+ #ifdef XKB
+ if (dev->key->xkbInfo)
+ XkbFreeInfo(dev->key->xkbInfo);
+-#endif
+ dev->key->xkbInfo = NULL;
++#endif
+ xfree(dev->key->curKeySyms.map);
+ xfree(dev->key->modifierKeyMap);
+ xfree(dev->key);
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/optional-xkb.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/optional-xkb.patch
new file mode 100644
index 0000000000..22d8c94c78
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/optional-xkb.patch
@@ -0,0 +1,58 @@
+Index: xorg-server-1.4/Makefile.am
+===================================================================
+--- xorg-server-1.4.orig/Makefile.am 2007-08-23 21:04:52.000000000 +0200
++++ xorg-server-1.4/Makefile.am 2007-09-06 23:19:59.000000000 +0200
+@@ -26,6 +26,10 @@
+ GLX_DIR=GL
+ endif
+
++if XKB
++XKB_DIR=xkb
++endif
++
+ if DBE
+ DBE_DIR=dbe
+ endif
+@@ -42,7 +46,7 @@
+ randr \
+ render \
+ Xi \
+- xkb \
++ $(XKB_DIR) \
+ $(DBE_DIR) \
+ $(MFB_DIR) \
+ $(AFB_DIR) \
+Index: xorg-server-1.4/configure.ac
+===================================================================
+--- xorg-server-1.4.orig/configure.ac 2007-09-06 07:59:00.000000000 +0200
++++ xorg-server-1.4/configure.ac 2007-09-06 23:19:19.000000000 +0200
+@@ -514,6 +514,7 @@
+ AC_ARG_ENABLE(config-dbus, AS_HELP_STRING([--enable-config-dbus], [Build D-BUS API support (default: no)]), [CONFIG_DBUS_API=$enableval], [CONFIG_DBUS_API=no])
+ AC_ARG_ENABLE(config-hal, AS_HELP_STRING([--disable-config-hal], [Build HAL support (default: auto)]), [CONFIG_HAL=$enableval], [CONFIG_HAL=auto])
+ AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
++AC_ARG_ENABLE(xkb, AS_HELP_STRING([--disable-xkb], [Build XKB (default: enabled)]), [XKB=$enableval], [XKB=yes])
+
+ dnl DDXes.
+ AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
+@@ -889,12 +890,15 @@
+
+ AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
+
+-AC_DEFINE(XKB, 1, [Build XKB])
+-AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
+-AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
+-REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
+-XKB_LIB='$(top_builddir)/xkb/libxkb.la'
+-XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
++AM_CONDITIONAL(XKB, [test "x$XKB" = xyes])
++if test "x$XKB" = xyes; then
++ AC_DEFINE(XKB, 1, [Build XKB])
++ AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
++ AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
++ REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
++ XKB_LIB='$(top_builddir)/xkb/libxkb.la'
++ XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
++fi
+
+ AC_CHECK_FUNC(strcasecmp, [], AC_DEFINE([NEED_STRCASECMP], 1,
+ [Do not have 'strcasecmp'.]))
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/tslib-default-device.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/tslib-default-device.patch
new file mode 100644
index 0000000000..c1bc49f58e
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/tslib-default-device.patch
@@ -0,0 +1,15 @@
+Index: xorg-server-1.4/hw/kdrive/linux/tslib.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/linux/tslib.c 2007-09-08 19:58:08.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/linux/tslib.c 2007-09-08 19:58:09.000000000 +0200
+@@ -121,6 +121,10 @@
+
+ private->raw_event_hook = NULL;
+ private->raw_event_closure = NULL;
++ if (!pi->path) {
++ pi->path = "/dev/input/touchscreen0";
++ ErrorF("[tslib/TslibEnable] no device path given, trying %s\n", pi->path);
++ }
+ private->tsDev = ts_open(pi->path, 0);
+ private->fd = ts_fd(private->tsDev);
+ if (!private->tsDev || ts_config(private->tsDev) || private->fd < 0) {
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-autofoo.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-autofoo.patch
new file mode 100644
index 0000000000..0812a2e856
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-autofoo.patch
@@ -0,0 +1,54 @@
+Index: xorg-server-1.4/hw/kdrive/Makefile.am
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/Makefile.am 2007-09-06 23:32:04.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/Makefile.am 2007-09-06 23:33:44.000000000 +0200
+@@ -11,6 +11,10 @@
+ XFAKE_SUBDIRS = fake
+ endif
+
++if KDRIVEW100
++W100_SUBDIRS = w100
++endif
++
+ if XSDLSERVER
+ XSDL_SUBDIRS = sdl
+ endif
+@@ -26,6 +30,7 @@
+ SERVER_SUBDIRS = \
+ $(XSDL_SUBDIRS) \
+ $(FBDEV_SUBDIRS) \
++ $(W100_SUBDIRS) \
+ $(VESA_SUBDIRS) \
+ $(XEPHYR_SUBDIRS) \
+ $(XFAKE_SUBDIRS)
+Index: xorg-server-1.4/configure.ac
+===================================================================
+--- xorg-server-1.4.orig/configure.ac 2007-09-06 23:32:05.000000000 +0200
++++ xorg-server-1.4/configure.ac 2007-09-06 23:34:41.000000000 +0200
+@@ -535,6 +535,7 @@
+ AC_ARG_ENABLE(kdrive, AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
+ AC_ARG_ENABLE(xephyr, AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto])
+ AC_ARG_ENABLE(xsdl, AS_HELP_STRING([--enable-xsdl], [Build the kdrive Xsdl server (default: auto)]), [XSDL=$enableval], [XSDL=auto])
++AC_ARG_ENABLE(w100, AS_HELP_STRING([--enable-w100], [Build the kdrive Xw100 server (default: no)]), [KDRIVEW100=$enableval], [KDRIVEW100=no])
+ AC_ARG_ENABLE(xfake, AS_HELP_STRING([--enable-xfake], [Build the kdrive 'fake' server (default: auto)]), [XFAKE=$enableval], [XFAKE=auto])
+ AC_ARG_ENABLE(xfbdev, AS_HELP_STRING([--enable-xfbdev], [Build the kdrive framebuffer device server (default: auto)]), [XFBDEV=$enableval], [XFBDEV=auto])
+ AC_ARG_ENABLE(kdrive-vesa, AS_HELP_STRING([--enable-kdrive-vesa], [Build the kdrive VESA-based servers (default: auto)]), [KDRIVEVESA=$enableval], [KDRIVEVESA=auto])
+@@ -1669,6 +1670,10 @@
+ fi
+ AM_CONDITIONAL(XP_USE_FREETYPE, [test "x$XPRINT" = xyes && test "x$XP_USE_FREETYPE" = xyes])
+
++AM_CONDITIONAL(KDRIVEW100, [test "x$KDRIVEW100" = xyes])
++if test "x$KDRIVEW100" = xyes; then
++ AC_DEFINE(KDRIVEW100, 1, [Build Xw100 server])
++fi
+
+ dnl XWin DDX
+
+@@ -2112,6 +2117,7 @@
+ hw/kdrive/epson/Makefile
+ hw/kdrive/fake/Makefile
+ hw/kdrive/fbdev/Makefile
++hw/kdrive/w100/Makefile
+ hw/kdrive/i810/Makefile
+ hw/kdrive/linux/Makefile
+ hw/kdrive/mach64/Makefile
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-fix-offscreen-bmp.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-fix-offscreen-bmp.patch
new file mode 100644
index 0000000000..39bc22c6b3
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-fix-offscreen-bmp.patch
@@ -0,0 +1,15 @@
+Patch suggested by Manuel Teira to actually enable offscreen pixmap
+acceleration in Xw100. Value 16 is empirical, works well on hx4700,
+but in case of issues, consider double it (other accelerated drivers
+use bigger values than 16).
+
+--- xorg-server-1.2.0/hw/kdrive/w100/ati_draw.c.org 2007-04-04 10:28:57.000000000 +0000
++++ xorg-server-1.2.0/hw/kdrive/w100/ati_draw.c 2007-04-06 14:43:40.000000000 +0000
+@@ -433,6 +433,7 @@
+ * or kaaPixmapUseScreen. But this is probably caused by some bug in this
+ * driver... */
+ atis->kaa.flags |= KAA_OFFSCREEN_PIXMAPS;
++ atis->kaa.pitchAlign = 16;
+ if (!kaaDrawInit(pScreen, &atis->kaa))
+ return FALSE;
+
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-new-input-world-order.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-new-input-world-order.patch
new file mode 100644
index 0000000000..239ae0bb67
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100-new-input-world-order.patch
@@ -0,0 +1,28 @@
+Index: xorg-server-1.4/hw/kdrive/w100/ati_stub.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/w100/ati_stub.c 2007-09-08 21:40:26.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/w100/ati_stub.c 2007-09-08 22:04:27.000000000 +0200
+@@ -74,10 +74,20 @@
+ void
+ InitInput(int argc, char **argv)
+ {
+- KdInitInput(&LinuxMouseFuncs, &LinuxKeyboardFuncs);
+-#ifdef TOUCHSCREEN
+- KdAddMouseDriver(&TsFuncs);
++ KdKeyboardInfo *ki;
++
++ KdAddKeyboardDriver (&LinuxKeyboardDriver);
++ KdAddPointerDriver (&LinuxMouseDriver);
++ KdAddKeyboardDriver (&LinuxEvdevKeyboardDriver);
++ KdAddPointerDriver (&LinuxEvdevMouseDriver);
++#ifdef TSLIB
++ KdAddPointerDriver (&TsDriver);
+ #endif
++
++ ki = KdParseKeyboard ("keyboard");
++ KdAddKeyboard(ki);
++
++ KdInitInput ();
+ }
+
+ void
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100.patch
new file mode 100644
index 0000000000..1bb6f357c6
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-kdrive-1.4.99.901/w100.patch
@@ -0,0 +1,6335 @@
+Index: git/hw/kdrive/w100/ati.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ git/hw/kdrive/w100/ati.c 2006-09-02 12:12:14.000000000 +0200
+@@ -0,0 +1,434 @@
++/*
++ * Copyright © 2006 Alberto Mardegan <mardy@users.sourceforge.net>
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that
++ * copyright notice and this permission notice appear in supporting
++ * documentation, and that the name of Alberto Mardegan not be used in
++ * advertising or publicity pertaining to distribution of the software without
++ * specific, written prior permission. Alberto Mardegan makes no
++ * representations about the suitability of this software for any purpose. It
++ * is provided "as is" without express or implied warranty.
++ *
++ * ALBERTO MARDEGAN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL ALBERTO MARDEGAN BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ */
++
++#ifdef HAVE_CONFIG_H
++#include <kdrive-config.h>
++#endif
++#include "ati.h"
++#include "w100_regs.h"
++
++
++struct pci_id_entry ati_pci_ids[] = {
++ {0x1002, 0x5644, 0, "ATI Imageon 3200"},
++ {0x1002, 0x5741, 0, "ATI Imageon 100"},
++ {0x1002, 0x5744, 0, "ATI Imageon 3220"},
++ {0, 0, 0, NULL}
++};
++
++
++static Bool
++ATICardInit(KdCardInfo * card)
++{
++ ATICardInfo *atic;
++ int i;
++ Bool initialized = FALSE;
++
++ atic = xcalloc(sizeof(ATICardInfo), 1);
++ if (atic == NULL)
++ return FALSE;
++
++#ifdef KDRIVEFBDEV
++ if (!initialized && fbdevInitialize(card, &atic->backend_priv.fbdev)) {
++ atic->use_fbdev = TRUE;
++ initialized = TRUE;
++ atic->backend_funcs.cardfini = fbdevCardFini;
++ atic->backend_funcs.scrfini = fbdevScreenFini;
++ atic->backend_funcs.initScreen = fbdevInitScreen;
++ atic->backend_funcs.finishInitScreen = fbdevFinishInitScreen;
++ atic->backend_funcs.createRes = fbdevCreateResources;
++ atic->backend_funcs.preserve = fbdevPreserve;
++ atic->backend_funcs.restore = fbdevRestore;
++ atic->backend_funcs.dpms = fbdevDPMS;
++ atic->backend_funcs.enable = fbdevEnable;
++ atic->backend_funcs.disable = fbdevDisable;
++ atic->backend_funcs.getColors = fbdevGetColors;
++ atic->backend_funcs.putColors = fbdevPutColors;
++#ifdef RANDR
++ atic->backend_funcs.randrSetConfig = fbdevRandRSetConfig;
++#endif
++ }
++#endif
++#ifdef KDRIVEVESA
++ if (!initialized && vesaInitialize(card, &atic->backend_priv.vesa)) {
++ atic->use_vesa = TRUE;
++ initialized = TRUE;
++ atic->backend_funcs.cardfini = vesaCardFini;
++ atic->backend_funcs.scrfini = vesaScreenFini;
++ atic->backend_funcs.initScreen = vesaInitScreen;
++ atic->backend_funcs.finishInitScreen = vesaFinishInitScreen;
++ atic->backend_funcs.createRes = vesaCreateResources;
++ atic->backend_funcs.preserve = vesaPreserve;
++ atic->backend_funcs.restore = vesaRestore;
++ atic->backend_funcs.dpms = vesaDPMS;
++ atic->backend_funcs.enable = vesaEnable;
++ atic->backend_funcs.disable = vesaDisable;
++ atic->backend_funcs.getColors = vesaGetColors;
++ atic->backend_funcs.putColors = vesaPutColors;
++#ifdef RANDR
++ atic->backend_funcs.randrSetConfig = vesaRandRSetConfig;
++#endif
++ }
++#endif
++
++ if (!initialized || !ATIMap(card, atic)) {
++ xfree(atic);
++ return FALSE;
++ }
++
++ card->driver = atic;
++
++ for (i = 0; ati_pci_ids[i].name != NULL; i++) {
++ if (ati_pci_ids[i].device == card->attr.deviceID) {
++ atic->pci_id = &ati_pci_ids[i];
++ break;
++ }
++ }
++
++ ErrorF("Using ATI card: %s\n", atic->pci_id->name);
++
++ return TRUE;
++}
++
++static void
++ATICardFini(KdCardInfo * card)
++{
++ ATICardInfo *atic = (ATICardInfo *) card->driver;
++
++ ATIUnmap(card, atic);
++ atic->backend_funcs.cardfini(card);
++}
++
++/*
++ * Once screen->off_screen_base is set, this function
++ * allocates the remaining memory appropriately
++ */
++
++static void
++ATISetOffscreen(KdScreenInfo * screen)
++{
++ ATICardInfo(screen);
++ int screen_size;
++ char *mmio = atic->reg_base;
++
++ /* check (and adjust) pitch */
++ if (mmio) {
++ int byteStride = screen->fb[0].byteStride;
++ int bitStride;
++ int pixelStride;
++ int bpp = screen->fb[0].bitsPerPixel;
++
++ /*
++ * Ensure frame buffer is correctly aligned
++ */
++ if (byteStride & 0x3f) {
++ byteStride = (byteStride + 0x3f) & ~0x3f;
++ bitStride = byteStride * 8;
++ pixelStride = bitStride / bpp;
++
++ screen->fb[0].byteStride = byteStride;
++ screen->fb[0].pixelStride = pixelStride;
++ }
++ }
++
++ screen_size = screen->fb[0].byteStride * screen->height;
++
++ screen->off_screen_base = screen_size;
++
++}
++
++static Bool
++ATIScreenInit(KdScreenInfo * screen)
++{
++ ATIScreenInfo *atis;
++ ATICardInfo(screen);
++ Bool success = FALSE;
++
++ atis = xcalloc(sizeof(ATIScreenInfo), 1);
++ if (atis == NULL)
++ return FALSE;
++
++ atis->atic = atic;
++ atis->screen = screen;
++ screen->driver = atis;
++
++ if (screen->fb[0].depth == 0)
++ screen->fb[0].depth = 16;
++#ifdef KDRIVEFBDEV
++ if (atic->use_fbdev) {
++ success = fbdevScreenInitialize(screen, &atis->backend_priv.fbdev);
++ }
++#endif
++#ifdef KDRIVEVESA
++ if (atic->use_vesa) {
++