Patchwork [4/6] xserver-kdrive: remove.

login
register
mail settings
Submitter Ross Burton
Date Aug. 30, 2012, 5:07 p.m.
Message ID <b01489d1b7731846021040962e4ef625d311a4e7.1346346320.git.ross.burton@intel.com>
Download mbox | patch
Permalink /patch/35563/
State New
Headers show

Comments

Ross Burton - Aug. 30, 2012, 5:07 p.m.
kdrive is effectively unmaintained upstream (it's only kept for Xephyr).

Apart from two headless machines in meta-yocto (patches sent), every BSP I
looked at (oe-core, meta-intel, meta-oe, meta-ti, meta-smartphone) is using the
traditional X.org X server.  Changing kdrive to Xorg means an extra ~200kb of
disk usage but extra features and more importantly continued maintenance.

Signed-off-by: Ross Burton <ross.burton@intel.com>
---
 .../xserver-kdrive-1.7.99.2/crosscompile.patch     |   23 -
 .../xserver-kdrive-1.7.99.2/disable-apm.patch      |   24 -
 .../enable-builtin-fonts.patch                     |   16 -
 .../enable-xcalibrate.patch                        |  152 ------
 .../error-address-work-around.patch                |  364 --------------
 .../xserver-kdrive-1.7.99.2/extra-kmodes.patch     |   87 ----
 .../fbdev_xrandr_ioctl.patch                       |   65 ---
 .../fix-bogus-stack-variables.patch                |  233 ---------
 .../fix-newer-xorg-headers.patch                   |   22 -
 .../hide-cursor-and-ppm-root.patch                 |  312 ------------
 .../xserver-kdrive-1.7.99.2/kdrive-evdev.patch     |  520 --------------------
 .../xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch |   58 ---
 .../keyboard-resume-workaround.patch               |   29 --
 .../no-serial-probing.patch                        |   17 -
 .../xserver-kdrive-1.7.99.2/nodolt.patch           |   16 -
 .../xserver-kdrive-1.7.99.2/optional-xkb.patch     |   62 ---
 .../xorg-xserver/xserver-kdrive.inc                |  113 -----
 .../xorg-xserver/xserver-kdrive_1.7.99.2.bb        |   34 --
 18 files changed, 2147 deletions(-)
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/disable-apm.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-builtin-fonts.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/error-address-work-around.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-bogus-stack-variables.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-evdev.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/no-serial-probing.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive.inc
 delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb
Saul Wold - Aug. 31, 2012, 4:27 p.m.
On 08/30/2012 10:07 AM, Ross Burton wrote:
> kdrive is effectively unmaintained upstream (it's only kept for Xephyr).
>
> Apart from two headless machines in meta-yocto (patches sent), every BSP I
> looked at (oe-core, meta-intel, meta-oe, meta-ti, meta-smartphone) is using the
> traditional X.org X server.  Changing kdrive to Xorg means an extra ~200kb of
> disk usage but extra features and more importantly continued maintenance.
>

I really can't take this patch set until the corresponding change is 
made to the meta-yocto BSPs as this will cause breakage there.

Sau!


> Signed-off-by: Ross Burton <ross.burton@intel.com>
> ---
>   .../xserver-kdrive-1.7.99.2/crosscompile.patch     |   23 -
>   .../xserver-kdrive-1.7.99.2/disable-apm.patch      |   24 -
>   .../enable-builtin-fonts.patch                     |   16 -
>   .../enable-xcalibrate.patch                        |  152 ------
>   .../error-address-work-around.patch                |  364 --------------
>   .../xserver-kdrive-1.7.99.2/extra-kmodes.patch     |   87 ----
>   .../fbdev_xrandr_ioctl.patch                       |   65 ---
>   .../fix-bogus-stack-variables.patch                |  233 ---------
>   .../fix-newer-xorg-headers.patch                   |   22 -
>   .../hide-cursor-and-ppm-root.patch                 |  312 ------------
>   .../xserver-kdrive-1.7.99.2/kdrive-evdev.patch     |  520 --------------------
>   .../xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch |   58 ---
>   .../keyboard-resume-workaround.patch               |   29 --
>   .../no-serial-probing.patch                        |   17 -
>   .../xserver-kdrive-1.7.99.2/nodolt.patch           |   16 -
>   .../xserver-kdrive-1.7.99.2/optional-xkb.patch     |   62 ---
>   .../xorg-xserver/xserver-kdrive.inc                |  113 -----
>   .../xorg-xserver/xserver-kdrive_1.7.99.2.bb        |   34 --
>   18 files changed, 2147 deletions(-)
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/disable-apm.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-builtin-fonts.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/error-address-work-around.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-bogus-stack-variables.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-evdev.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/no-serial-probing.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive.inc
>   delete mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb
>
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch
> deleted file mode 100644
> index 87595d0..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -Upstream-Status: Inappropriate [cross compiling]
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> -Index: xorg-server-1.7.99.2/configure.ac
> -===================================================================
> ---- xorg-server-1.7.99.2.orig/configure.ac	2010-01-29 16:38:49.000000000 +0000
> -+++ xorg-server-1.7.99.2/configure.ac	2010-01-29 16:42:39.000000000 +0000
> -@@ -503,14 +503,10 @@
> -
> - dnl Uses --default-font-path if set, otherwise checks for /etc/X11/fontpath.d,
> - dnl otherwise uses standard subdirectories of FONTROOTDIR
> --AC_CHECK_FILE([${sysconfdir}/X11/fontpath.d],
> --	[DEFAULT_FONT_PATH='catalogue:${sysconfdir}/X11/fontpath.d'],
> --	[
> - 		DEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/"
> - 		case $host_os in
> - 			darwin*)    DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;;
> - 		esac
> --	])
> - AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]),
> - 				[ FONTPATH="$withval" ],
> - 				[ FONTPATH="${DEFAULT_FONT_PATH}" ])
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/disable-apm.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/disable-apm.patch
> deleted file mode 100644
> index c22b1c0..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/disable-apm.patch
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -Upstream-Status: Inappropriate [disable feature]
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> ---- xserver/hw/kdrive/linux/linux.c.orig	2005-04-23 15:56:13.988849232 +0000
> -+++ xserver/hw/kdrive/linux/linux.c	2005-04-23 15:57:05.001094192 +0000
> -@@ -342,7 +342,7 @@
> -     /*
> -      * Open the APM driver
> -      */
> --    LinuxApmFd = open ("/dev/apm_bios", 2);
> -+    /*LinuxApmFd = open ("/dev/apm_bios", 2);
> -     if (LinuxApmFd < 0 && errno == ENOENT)
> - 	LinuxApmFd = open ("/dev/misc/apm_bios", 2);
> -     if (LinuxApmFd >= 0)
> -@@ -352,7 +352,7 @@
> - 	RegisterBlockAndWakeupHandlers (LinuxApmBlock, LinuxApmWakeup, 0);
> - 	AddEnabledDevice (LinuxApmFd);
> -     }
> --	
> -+    */	
> -     /*
> -      * now get the VT
> -      */
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-builtin-fonts.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-builtin-fonts.patch
> deleted file mode 100644
> index 98d5176..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-builtin-fonts.patch
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> ---- xorg-server-X11R7.1-1.1.0/dix/dixfonts.c.orig	2006-06-08 14:49:12.158684250 +0200
> -+++ xorg-server-X11R7.1-1.1.0/dix/dixfonts.c	2006-06-08 14:49:52.493205000 +0200
> -@@ -52,8 +52,8 @@
> - /* $Xorg: dixfonts.c,v 1.4 2000/08/17 19:48:18 cpqbld Exp $ */
> -
> - #define NEED_REPLIES
> - #ifdef HAVE_DIX_CONFIG_H
> --#include <dix-config.h>
> -+#include <kdrive-config.h>
> - #endif
> -
> - #include <X11/X.h>
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch
> deleted file mode 100644
> index efac5ef..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch
> +++ /dev/null
> @@ -1,152 +0,0 @@
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> ----
> - Xext/Makefile.am           |    6 ++++++
> - configure.ac               |   11 +++++++++--
> - include/kdrive-config.h.in |    3 +++
> - mi/miinitext.c             |    6 ++++++
> - 4 files changed, 24 insertions(+), 2 deletions(-)
> -
> -Index: xorg-server-1.7.99.2/mi/miinitext.c
> -===================================================================
> ---- xorg-server-1.7.99.2.orig/mi/miinitext.c	2010-02-10 18:54:11.959086237 +0000
> -+++ xorg-server-1.7.99.2/mi/miinitext.c	2010-02-10 18:54:12.429078513 +0000
> -@@ -264,6 +264,9 @@
> - #ifdef DMXEXT
> - extern void DMXExtensionInit(INITARGS);
> - #endif
> -+#ifdef XCALIBRATE
> -+extern void XCalibrateExtensionInit(INITARGS);
> -+#endif
> - #ifdef XFIXES
> - extern void XFixesExtensionInit(INITARGS);
> - #endif
> -@@ -493,6 +496,9 @@
> - 	GlxPushProvider(&__glXDRISWRastProvider);
> -     if (!noGlxExtension) GlxExtensionInit();
> - #endif
> -+#ifdef  XCALIBRATE
> -+    XCalibrateExtensionInit ();
> -+#endif
> - }
> -
> - #else /* XFree86LOADER */
> -Index: xorg-server-1.7.99.2/configure.ac
> -===================================================================
> ---- xorg-server-1.7.99.2.orig/configure.ac	2010-02-10 18:54:11.959086237 +0000
> -+++ xorg-server-1.7.99.2/configure.ac	2010-02-11 11:49:50.710736962 +0000
> -@@ -1985,7 +1985,7 @@
> -     fi
> -
> -
> --    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_CHECK_LIB(ts, ts_open, [HAVE_TSLIB="yes"])
> -     fi
> -@@ -2039,7 +2039,7 @@
> -     KDRIVE_LOCAL_LIBS="$MAIN_LIB $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="$TSLIB_LIBS $KDRIVE_LOCAL_LIBS $XSERVER_SYS_LIBS $GLX_SYS_LIBS $DLOPEN_LIBS"
> -+    KDRIVE_LIBS="$KDRIVE_LOCAL_LIBS $TSLIB_LIBS $XSERVER_SYS_LIBS $GLX_SYS_LIBS $DLOPEN_LIBS"
> -
> -     AC_SUBST([XEPHYR_LIBS])
> -     AC_SUBST([XEPHYR_INCS])
> -Index: xorg-server-1.7.99.2/include/kdrive-config.h.in
> -===================================================================
> ---- xorg-server-1.7.99.2.orig/include/kdrive-config.h.in	2010-02-10 18:54:11.959086237 +0000
> -+++ xorg-server-1.7.99.2/include/kdrive-config.h.in	2010-02-10 18:54:12.429078513 +0000
> -@@ -28,4 +28,7 @@
> - /* Have execinfo.h for backtrace(). */
> - #undef HAVE_EXECINFO_H
> -
> -+/* Enable XCalibrate extension */
> -+#undef XCALIBRATE
> -+
> - #endif /* _KDRIVE_CONFIG_H_ */
> -Index: xorg-server-1.7.99.2/hw/kdrive/linux/tslib.c
> -===================================================================
> ---- xorg-server-1.7.99.2.orig/hw/kdrive/linux/tslib.c	2010-02-10 18:58:12.669078495 +0000
> -+++ xorg-server-1.7.99.2/hw/kdrive/linux/tslib.c	2010-02-10 19:04:56.927828767 +0000
> -@@ -50,12 +50,15 @@
> -     int fd;
> -     int lastx, lasty;
> -     struct tsdev *tsDev;
> --    void (*raw_event_hook)(int x, int y, int pressure, void *closure);
> --    void *raw_event_closure;
> -     int phys_screen;
> - };
> -
> -
> -+/* For XCalibrate extension */
> -+void (*tslib_raw_event_hook)(int x, int y, int pressure, void *closure);
> -+void *tslib_raw_event_closure;
> -+
> -+
> - static void
> - TsRead (int fd, void *closure)
> - {
> -@@ -65,10 +68,10 @@
> -     long                x = 0, y = 0;
> -     unsigned long       flags;
> -
> --    if (private->raw_event_hook) {
> -+    if (tslib_raw_event_hook) {
> -         while (ts_read_raw(private->tsDev, &event, 1) == 1)
> --            private->raw_event_hook (event.x, event.y, event.pressure,
> --                                     private->raw_event_closure);
> -+            tslib_raw_event_hook (event.x, event.y, event.pressure,
> -+                                     tslib_raw_event_closure);
> -         return;
> -     }
> -
> -@@ -111,8 +114,8 @@
> - {
> -     struct TslibPrivate *private = pi->driverPrivate;
> -
> --    private->raw_event_hook = NULL;
> --    private->raw_event_closure = NULL;
> -+    tslib_raw_event_hook = NULL;
> -+    tslib_raw_event_closure = NULL;
> -     if (!pi->path) {
> -         pi->path = strdup("/dev/input/touchscreen0");
> -         ErrorF("[tslib/TslibEnable] no device path given, trying %s\n", pi->path);
> -Index: xorg-server-1.7.99.2/Xext/xcalibrate.c
> -===================================================================
> ---- xorg-server-1.7.99.2.orig/Xext/xcalibrate.c	2010-02-10 18:59:24.097829840 +0000
> -+++ xorg-server-1.7.99.2/Xext/xcalibrate.c	2010-02-11 11:51:00.930735731 +0000
> -@@ -115,6 +115,7 @@
> -
> -   memset (&rep, 0, sizeof (rep));
> -   rep.type = X_Reply;
> -+  rep.length = 0;
> -   rep.sequenceNumber = client->sequence;
> -
> -   if (stuff->on)
> -@@ -158,6 +159,7 @@
> -
> -       swaps (&rep.sequenceNumber, n);
> -       swaps (&rep.status, n);
> -+      swapl (&rep.length, n);
> -     }
> -   WriteToClient(client, sizeof (rep), (char *) &rep);
> -   return (client->noClientException);
> -@@ -186,6 +188,7 @@
> -
> -   memset (&rep, 0, sizeof (rep));
> -   rep.type = X_Reply;
> -+  rep.length = 0;
> -   rep.sequenceNumber = client->sequence;
> -   rep.x = stuff->x;
> -   rep.y = stuff->y;
> -@@ -198,6 +201,7 @@
> -
> -       swaps (&rep.x, n);
> -       swaps (&rep.y, n);
> -+      swapl (&rep.length, n);
> -     }
> -   WriteToClient(client, sizeof (rep), (char *) &rep);
> -   return (client->noClientException);
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/error-address-work-around.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/error-address-work-around.patch
> deleted file mode 100644
> index 98a946a..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/error-address-work-around.patch
> +++ /dev/null
> @@ -1,364 +0,0 @@
> -Upstream-Status: Inappropriate
> -
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/dix/window.c xorg-server-1.7.99.2/dix/window.c
> ---- xorg-server-1.7.99.2.ORIG/dix/window.c	2012-01-04 13:12:40.417640130 -0700
> -+++ xorg-server-1.7.99.2/dix/window.c	2012-01-04 12:13:20.678605493 -0700
> -@@ -559,10 +559,10 @@
> -     box.y1 = 0;
> -     box.x2 = pScreen->width;
> -     box.y2 = pScreen->height;
> --    REGION_INIT(pScreen, &pWin->clipList, &box, 1);
> --    REGION_INIT(pScreen, &pWin->winSize, &box, 1);
> --    REGION_INIT(pScreen, &pWin->borderSize, &box, 1);
> --    REGION_INIT(pScreen, &pWin->borderClip, &box, 1);
> -+    REGION_INIT2(pScreen, &pWin->clipList, &box, 1);
> -+    REGION_INIT2(pScreen, &pWin->winSize, &box, 1);
> -+    REGION_INIT2(pScreen, &pWin->borderSize, &box, 1);
> -+    REGION_INIT2(pScreen, &pWin->borderClip, &box, 1);
> -
> -     pWin->drawable.class = InputOutput;
> -     pWin->optional->visual = pScreen->rootVisual;
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_accel.c xorg-server-1.7.99.2/exa/exa_accel.c
> ---- xorg-server-1.7.99.2.ORIG/exa/exa_accel.c	2009-12-11 11:20:48.000000000 -0700
> -+++ xorg-server-1.7.99.2/exa/exa_accel.c	2012-01-04 12:58:11.218616328 -0700
> -@@ -1275,7 +1275,7 @@
> - 	Box.x2 = Box.x1 + w;
> - 	Box.y2 = Box.y1 + h;
> -
> --	REGION_INIT(pScreen, &Reg, &Box, 1);
> -+	REGION_INIT2(pScreen, &Reg, &Box, 1);
> -
> - 	pixmaps[0].as_dst = FALSE;
> - 	pixmaps[0].as_src = TRUE;
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa.c xorg-server-1.7.99.2/exa/exa.c
> ---- xorg-server-1.7.99.2.ORIG/exa/exa.c	2009-12-11 11:20:48.000000000 -0700
> -+++ xorg-server-1.7.99.2/exa/exa.c	2012-01-04 12:56:30.592593427 -0700
> -@@ -161,7 +161,7 @@
> -     if (box.x1 >= box.x2 || box.y1 >= box.y2)
> - 	return;
> -
> --    REGION_INIT(pScreen, &region, &box, 1);
> -+    REGION_INIT2(pScreen, &region, &box, 1);
> -     DamageRegionAppend(&pPix->drawable, &region);
> -     DamageRegionProcessPending(&pPix->drawable);
> -     REGION_UNINIT(pScreen, &region);
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_classic.c xorg-server-1.7.99.2/exa/exa_classic.c
> ---- xorg-server-1.7.99.2.ORIG/exa/exa_classic.c	2009-11-28 13:44:58.000000000 -0700
> -+++ xorg-server-1.7.99.2/exa/exa_classic.c	2012-01-04 12:54:50.586576675 -0700
> -@@ -131,8 +131,8 @@
> -     box.y1 = 0;
> -     box.x2 = w;
> -     box.y2 = h;
> --    REGION_INIT(pScreen, &pExaPixmap->validSys, &box, 0);
> --    REGION_INIT(pScreen, &pExaPixmap->validFB, &box, 0);
> -+    REGION_INIT2(pScreen, &pExaPixmap->validSys, &box, 0);
> -+    REGION_INIT2(pScreen, &pExaPixmap->validFB, &box, 0);
> -
> -     exaSetAccelBlock(pExaScr, pExaPixmap,
> -                      w, h, bpp);
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_migration_classic.c xorg-server-1.7.99.2/exa/exa_migration_classic.c
> ---- xorg-server-1.7.99.2.ORIG/exa/exa_migration_classic.c	2009-11-28 13:44:58.000000000 -0700
> -+++ xorg-server-1.7.99.2/exa/exa_migration_classic.c	2012-01-04 12:54:43.077500333 -0700
> -@@ -177,7 +177,7 @@
> - 		box.x2 = max(pValidExt->x2, pDamageExt->x2);
> - 		box.y2 = max(pValidExt->y2, pDamageExt->y2);
> -
> --		REGION_INIT(pScreen, &closure, &box, 0);
> -+		REGION_INIT2(pScreen, &closure, &box, 0);
> - 		REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, &closure);
> - 	    } else
> - 		REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, pending_damage);
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_render.c xorg-server-1.7.99.2/exa/exa_render.c
> ---- xorg-server-1.7.99.2.ORIG/exa/exa_render.c	2009-11-28 13:44:58.000000000 -0700
> -+++ xorg-server-1.7.99.2/exa/exa_render.c	2012-01-04 12:59:18.234297490 -0700
> -@@ -576,7 +576,7 @@
> - 	 * (see use of DamagePendingRegion in exaCopyDirty)
> - 	 */
> -
> --	REGION_INIT(pScreen, &region, &box, 1);
> -+	REGION_INIT2(pScreen, &region, &box, 1);
> -
> - 	DamageRegionAppend(pDst->pDrawable, &region);
> -
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_unaccel.c xorg-server-1.7.99.2/exa/exa_unaccel.c
> ---- xorg-server-1.7.99.2.ORIG/exa/exa_unaccel.c	2009-12-11 11:20:48.000000000 -0700
> -+++ xorg-server-1.7.99.2/exa/exa_unaccel.c	2012-01-04 12:59:25.915375559 -0700
> -@@ -344,7 +344,7 @@
> - 	Box.x2 = Box.x1 + w;
> - 	Box.y2 = Box.y1 + h;
> -
> --	REGION_INIT(pScreen, &Reg, &Box, 1);
> -+	REGION_INIT2(pScreen, &Reg, &Box, 1);
> -
> - 	pExaScr->prepare_access_reg(pPix, EXA_PREPARE_SRC, &Reg);
> -     } else
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/fb/fboverlay.c xorg-server-1.7.99.2/fb/fboverlay.c
> ---- xorg-server-1.7.99.2.ORIG/fb/fboverlay.c	2009-11-04 09:25:50.000000000 -0700
> -+++ xorg-server-1.7.99.2/fb/fboverlay.c	2012-01-04 12:24:43.855400893 -0700
> -@@ -147,7 +147,7 @@
> - 					    pbits))
> - 	    return FALSE;
> - 	pScrPriv->layer[i].u.run.pixmap = pPixmap;
> --	REGION_INIT(pScreen, &pScrPriv->layer[i].u.run.region, &box, 0);
> -+	REGION_INIT2(pScreen, &pScrPriv->layer[i].u.run.region, &box, 0);
> -     }
> -     pScreen->devPrivate = pScrPriv->layer[0].u.run.pixmap;
> -     return TRUE;
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kdrive.c xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c
> ---- xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kdrive.c	2012-01-04 13:12:40.418640141 -0700
> -+++ xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c	2012-01-04 13:05:08.771897914 -0700
> -@@ -144,8 +144,8 @@
> - 	box.y2 = pScreen->height;
> - 	pWin->drawable.width = pScreen->width;
> - 	pWin->drawable.height = pScreen->height;
> --	REGION_INIT (pScreen, &pWin->winSize, &box, 1);
> --	REGION_INIT (pScreen, &pWin->borderSize, &box, 1);
> -+	REGION_INIT2 (pScreen, &pWin->winSize, &box, 1);
> -+	REGION_INIT2 (pScreen, &pWin->borderSize, &box, 1);
> - 	REGION_RESET(pScreen, &pWin->borderClip, &box);
> - 	REGION_BREAK (pWin->drawable.pScreen, &pWin->clipList);
> -     }
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kxv.c xorg-server-1.7.99.2/hw/kdrive/src/kxv.c
> ---- xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kxv.c	2008-11-14 14:27:05.000000000 -0700
> -+++ xorg-server-1.7.99.2/hw/kdrive/src/kxv.c	2012-01-04 13:07:32.625411023 -0700
> -@@ -674,7 +674,7 @@
> -   WinBox.y2 = WinBox.y1 + portPriv->drw_h;
> -
> -   /* clip to the window composite clip */
> --  REGION_INIT(portPriv->pDraw->pScreen, &WinRegion, &WinBox, 1);
> -+  REGION_INIT2(portPriv->pDraw->pScreen, &WinRegion, &WinBox, 1);
> -   REGION_INIT(portPriv->pDraw->pScreen, &ClipRegion, NullBox, 1);
> -   REGION_INTERSECT(portPriv->pDraw->pScreen, &ClipRegion, &WinRegion, portPriv->pCompositeClip);
> -
> -@@ -738,7 +738,7 @@
> -   WinBox.y2 = WinBox.y1 + portPriv->drw_h;
> -
> -   /* clip to the window composite clip */
> --  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
> -+  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
> -   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
> -   REGION_INTERSECT(Screen, &ClipRegion, &WinRegion, portPriv->pCompositeClip);
> -
> -@@ -752,7 +752,7 @@
> -      VPBox.x2 = screen->width;
> -      VPBox.y2 = screen->height;
> -
> --     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
> -+     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
> -      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg);
> -      REGION_UNINIT(pScreen, &VPReg);
> -   }
> -@@ -827,7 +827,7 @@
> -   WinBox.y2 = WinBox.y1 + portPriv->drw_h;
> -
> -   /* clip to the window composite clip */
> --  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
> -+  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
> -   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
> -   REGION_INTERSECT(Screen, &ClipRegion, &WinRegion, portPriv->pCompositeClip);
> -
> -@@ -841,7 +841,7 @@
> -      VPBox.x2 = screen->width;
> -      VPBox.y2 = screen->height;
> -
> --     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
> -+     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
> -      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg);
> -      REGION_UNINIT(pScreen, &VPReg);
> -   }
> -@@ -1337,7 +1337,7 @@
> -   WinBox.x2 = WinBox.x1 + drw_w;
> -   WinBox.y2 = WinBox.y1 + drw_h;
> -
> --  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
> -+  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
> -   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
> -   REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);
> -
> -@@ -1350,7 +1350,7 @@
> -      VPBox.x2 = screen->width;
> -      VPBox.y2 = screen->height;
> -
> --     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
> -+     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
> -      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg);
> -      REGION_UNINIT(pScreen, &VPReg);
> -   }
> -@@ -1490,7 +1490,7 @@
> -   WinBox.x2 = WinBox.x1 + drw_w;
> -   WinBox.y2 = WinBox.y1 + drw_h;
> -
> --  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
> -+  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
> -   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
> -   REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);
> -
> -@@ -1637,7 +1637,7 @@
> -   WinBox.x2 = WinBox.x1 + drw_w;
> -   WinBox.y2 = WinBox.y1 + drw_h;
> -
> --  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
> -+  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
> -   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
> -   REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);
> -
> -@@ -1650,7 +1650,7 @@
> -      VPBox.x2 = pScreen->width;
> -      VPBox.y2 = pScreen->height;
> -
> --     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
> -+     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
> -      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg);
> -      REGION_UNINIT(pScreen, &VPReg);
> -   }
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/include/regionstr.h xorg-server-1.7.99.2/include/regionstr.h
> ---- xorg-server-1.7.99.2.ORIG/include/regionstr.h	2009-11-04 09:25:50.000000000 -0700
> -+++ xorg-server-1.7.99.2/include/regionstr.h	2012-01-04 12:13:06.174461574 -0700
> -@@ -152,6 +152,12 @@
> -     } \
> -  }
> -
> -+#define REGION_INIT2(_pScreen, _pReg, _rect, _size) \
> -+{ \
> -+        (_pReg)->extents = *(_rect); \
> -+        (_pReg)->data = (RegDataPtr)NULL; \
> -+ }
> -+
> -
> - #define REGION_UNINIT(_pScreen, _pReg) \
> - { \
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/micopy.c xorg-server-1.7.99.2/mi/micopy.c
> ---- xorg-server-1.7.99.2.ORIG/mi/micopy.c	2009-11-04 09:25:50.000000000 -0700
> -+++ xorg-server-1.7.99.2/mi/micopy.c	2012-01-04 12:44:17.003144611 -0700
> -@@ -315,7 +315,7 @@
> - 	box.y1 = box_y1;
> - 	box.x2 = box_x2;
> - 	box.y2 = box_y2;
> --	REGION_INIT(pGC->pScreen, &rgnDst, &box, 1);
> -+	REGION_INIT2(pGC->pScreen, &rgnDst, &box, 1);
> -     }
> -
> -     /* Clip against complex source if needed */
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/miexpose.c xorg-server-1.7.99.2/mi/miexpose.c
> ---- xorg-server-1.7.99.2.ORIG/mi/miexpose.c	2009-11-04 09:25:50.000000000 -0700
> -+++ xorg-server-1.7.99.2/mi/miexpose.c	2012-01-04 12:46:29.400478668 -0700
> -@@ -206,7 +206,7 @@
> - 	box.x2 = pSrcDrawable->width;
> - 	box.y2 = pSrcDrawable->height;
> - 	prgnSrcClip = &rgnSrcRec;
> --	REGION_INIT(pscr, prgnSrcClip, &box, 1);
> -+	REGION_INIT2(pscr, prgnSrcClip, &box, 1);
> - 	pSrcWin = NULL;
> -     }
> -
> -@@ -239,11 +239,11 @@
> - 	box.x2 = pDstDrawable->width;
> - 	box.y2 = pDstDrawable->height;
> - 	prgnDstClip = &rgnDstRec;
> --	REGION_INIT(pscr, prgnDstClip, &box, 1);
> -+	REGION_INIT2(pscr, prgnDstClip, &box, 1);
> -     }
> -
> -     /* drawable-relative source region */
> --    REGION_INIT(pscr, &rgnExposed, &srcBox, 1);
> -+    REGION_INIT2(pscr, &rgnExposed, &srcBox, 1);
> -
> -     /* now get the hidden parts of the source box*/
> -     REGION_SUBTRACT(pscr, &rgnExposed, &rgnExposed, prgnSrcClip);
> -@@ -491,7 +491,7 @@
> - 	    box = *REGION_EXTENTS( pWin->drawable.pScreen, exposures);
> - 	    if (exposures == prgn) {
> - 		exposures = &expRec;
> --		REGION_INIT( pWin->drawable.pScreen, exposures, &box, 1);
> -+		REGION_INIT2( pWin->drawable.pScreen, exposures, &box, 1);
> - 		REGION_RESET( pWin->drawable.pScreen, prgn, &box);
> - 	    } else {
> - 		REGION_RESET( pWin->drawable.pScreen, exposures, &box);
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/mioverlay.c xorg-server-1.7.99.2/mi/mioverlay.c
> ---- xorg-server-1.7.99.2.ORIG/mi/mioverlay.c	2009-11-04 09:25:50.000000000 -0700
> -+++ xorg-server-1.7.99.2/mi/mioverlay.c	2012-01-04 12:47:50.114300224 -0700
> -@@ -209,8 +209,8 @@
> - 		fullBox.y1 = 0;
> - 		fullBox.x2 = pScreen->width;
> - 		fullBox.y2 = pScreen->height;
> --		REGION_INIT(pScreen, &(pTree->borderClip), &fullBox, 1);
> --		REGION_INIT(pScreen, &(pTree->clipList), &fullBox, 1);
> -+		REGION_INIT2(pScreen, &(pTree->borderClip), &fullBox, 1);
> -+		REGION_INIT2(pScreen, &(pTree->clipList), &fullBox, 1);
> - 	    }
> - 	} else xfree(pTree);
> -     }
> -@@ -1027,7 +1027,7 @@
> - 	    box = *REGION_EXTENTS(pScreen, exposures);
> - 	    if (exposures == prgn) {
> - 		exposures = &expRec;
> --		REGION_INIT(pScreen, exposures, &box, 1);
> -+		REGION_INIT2(pScreen, exposures, &box, 1);
> - 		REGION_RESET(pScreen, prgn, &box);
> - 	    } else {
> - 		REGION_RESET(pScreen, exposures, &box);
> -@@ -1672,7 +1672,7 @@
> -     box.x1 = x1; box.x2 = x2;
> -     box.y1 = y1; box.y2 = y2;
> -
> --    REGION_INIT(pScreen, &reg, &box, 1);
> -+    REGION_INIT2(pScreen, &reg, &box, 1);
> -
> -     REGION_INTERSECT(pScreen, &reg, &reg, clipList);
> -     if (generateExposures)
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/miwindow.c xorg-server-1.7.99.2/mi/miwindow.c
> ---- xorg-server-1.7.99.2.ORIG/mi/miwindow.c	2009-11-04 09:25:50.000000000 -0700
> -+++ xorg-server-1.7.99.2/mi/miwindow.c	2012-01-04 12:48:38.055787835 -0700
> -@@ -111,7 +111,7 @@
> -     box.y2 = y2;
> -
> -     pScreen = pWin->drawable.pScreen;
> --    REGION_INIT(pScreen, &reg, &box, 1);
> -+    REGION_INIT2(pScreen, &reg, &box, 1);
> -
> -     REGION_INTERSECT(pScreen, &reg, &reg, &pWin->clipList);
> -     if (generateExposures)
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/miext/damage/damage.c xorg-server-1.7.99.2/miext/damage/damage.c
> ---- xorg-server-1.7.99.2.ORIG/miext/damage/damage.c	2009-11-04 09:25:50.000000000 -0700
> -+++ xorg-server-1.7.99.2/miext/damage/damage.c	2012-01-04 12:51:04.883281430 -0700
> -@@ -324,7 +324,7 @@
> - 		box.y1 = draw_y;
> - 		box.x2 = draw_x + pDamage->pDrawable->width;
> - 		box.y2 = draw_y + pDamage->pDrawable->height;
> --		REGION_INIT(pScreen, &pixClip, &box, 1);
> -+		REGION_INIT2(pScreen, &pixClip, &box, 1);
> - 		REGION_INTERSECT (pScreen, pDamageRegion, pRegion, &pixClip);
> - 		REGION_UNINIT(pScreen, &pixClip);
> - 	    }
> -@@ -2085,7 +2085,7 @@
> - 	    box.y1 = pDrawable->y;
> - 	    box.x2 = pDrawable->x + pDrawable->width;
> - 	    box.y2 = pDrawable->y + pDrawable->height;
> --	    REGION_INIT (pDrawable->pScreen, &pixmapClip, &box, 1);
> -+	    REGION_INIT2 (pDrawable->pScreen, &pixmapClip, &box, 1);
> - 	    pClip = &pixmapClip;
> - 	}
> - 	REGION_TRANSLATE (pDrawable->pScreen, &pDamage->damage, pDrawable->x, pDrawable->y);
> -diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/Xext/xace.c xorg-server-1.7.99.2/Xext/xace.c
> ---- xorg-server-1.7.99.2.ORIG/Xext/xace.c	2009-11-04 09:25:50.000000000 -0700
> -+++ xorg-server-1.7.99.2/Xext/xace.c	2012-01-04 12:49:36.850385965 -0700
> -@@ -255,7 +255,7 @@
> -     imageBox.y1 = y;
> -     imageBox.x2 = x + w;
> -     imageBox.y2 = y + h;
> --    REGION_INIT(pScreen, &imageRegion, &imageBox, 1);
> -+    REGION_INIT2(pScreen, &imageRegion, &imageBox, 1);
> -     REGION_NULL(pScreen, &censorRegion);
> -
> -     /* censorRegion = imageRegion - visibleRegion */
> ---- xorg-server-1.7.99.2.ORIG/mi/mibank.c	2009-11-04 09:25:50.000000000 -0700
> -+++ xorg-server-1.7.99.2/mi/mibank.c	2012-01-04 12:37:42.251184747 -0700
> -@@ -772,7 +772,7 @@
> -         }
> -         else
> -         {
> --            REGION_INIT(pScreen, &rgnDst, &fastBox, 1);
> -+            REGION_INIT2(pScreen, &rgnDst, &fastBox, 1);
> -             REGION_INTERSECT(pScreen, &rgnDst, &rgnDst, prgnSrcClip);
> -             pBox = REGION_RECTS(&rgnDst);
> -             nBox = REGION_NUM_RECTS(&rgnDst);
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch
> deleted file mode 100644
> index 896c033..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch
> +++ /dev/null
> @@ -1,87 +0,0 @@
> -Add some extra video modes and change the default to VGA.
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> ----
> - hw/kdrive/src/kmode.c |   41 +++++++++++++++++++++++++++++++++++++++--
> - 1 file changed, 39 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	2008-01-11 14:20:47.000000000 +0000
> -+++ xorg-server-1.3.0.0/hw/kdrive/src/kmode.c	2008-01-11 14:21:18.000000000 +0000
> -@@ -32,6 +32,31 @@ const KdMonitorTiming  kdMonitorTimings[
> -     /*	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"
> -@@ -41,6 +66,11 @@ const KdMonitorTiming  kdMonitorTimings[
> - 	            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 */
> -@@ -76,10 +106,19 @@ 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 */
> -     },
> -+
> -+
> -+  {   480,    640,    60,     0,                      /* VESA */
> -+               0,      0,     0,    KdSyncNegative, /* 31.469 */
> -+               0,      0,     0,     KdSyncNegative, /* 59.940 */
> -+   },
> -+
> -
> -     /* 800x600 modes */
> -     {	800,	600,	85,	56250,			    /* VESA */
> -@@ -90,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/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch
> deleted file mode 100644
> index 06761c9..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch
> +++ /dev/null
> @@ -1,65 +0,0 @@
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> -Index: xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c
> -===================================================================
> ---- xorg-server-1.3.0.0.orig/hw/kdrive/fbdev/fbdev.c	2008-09-25 21:55:12.000000000 +0100
> -+++ xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c	2008-09-25 21:55:46.000000000 +0100
> -@@ -498,6 +498,7 @@
> -     KdScreenInfo	*screen = pScreenPriv->screen;
> -     FbdevScrPriv	*scrpriv = screen->driver;
> -     Bool		wasEnabled = pScreenPriv->enabled;
> -+    FbdevPriv		*priv = screen->card->driver;
> -     FbdevScrPriv	oldscr;
> -     int			oldwidth;
> -     int			oldheight;
> -@@ -525,11 +526,46 @@
> -     oldheight = screen->height;
> -     oldmmwidth = pScreen->mmWidth;
> -     oldmmheight = pScreen->mmHeight;
> --
> -+
> -     /*
> -      * Set new configuration
> -      */
> --
> -+
> -+    if (newwidth != oldwidth || newheight != oldheight)
> -+    {
> -+	struct fb_var_screeninfo var;
> -+	int k;
> -+
> -+	k = ioctl (priv->fd, FBIOGET_VSCREENINFO, &var);
> -+
> -+	if (k < 0)
> -+	{
> -+	    ErrorF("Error with framebuffer ioctl FBIOGET_VSCREENINFO: %s", strerror (errno));
> -+	    return FALSE;
> -+	}
> -+
> -+	var.xres = newwidth;
> -+	var.yres = newheight;
> -+	var.activate = FB_ACTIVATE_NOW;
> -+
> -+	k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &var);
> -+
> -+	if (k >= 0)
> -+	{
> -+	    if ((k=ioctl(priv->fd, FBIOGET_FSCREENINFO, &priv->fix)) < 0)
> -+	    {
> -+		perror("Error with framebuffer ioctl FIOGET_FSCREENINFO");
> -+		close (priv->fd);
> -+		return FALSE;
> -+	    }
> -+	    if ((k=ioctl(priv->fd, FBIOGET_VSCREENINFO, &priv->var)) < 0) {
> -+		perror("Error  framebuffer ioctl FIOGET_VSCREENINFO");
> -+		close (priv->fd);
> -+		return FALSE;
> -+	    }
> -+	}
> -+    }
> -+
> -     scrpriv->randr = KdAddRotation (screen->randr, randr);
> -
> -     KdOffscreenSwapOut (screen->pScreen);
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-bogus-stack-variables.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-bogus-stack-variables.patch
> deleted file mode 100644
> index b4e293f..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-bogus-stack-variables.patch
> +++ /dev/null
> @@ -1,233 +0,0 @@
> -From 6dae7f3792611aace1df0cca63bf50c50d93de43 Mon Sep 17 00:00:00 2001
> -From: Chris Wilson <chris@chris-wilson.co.uk>
> -Date: Tue, 10 Aug 2010 18:30:20 +0000
> -Subject: xace: Invalid reference to out-of-scope data.
> -
> -The callback data passed by reference to the hook was allocated on stack
> -within the scope of the case statement. The compiler is free to reuse
> -any of that stack space whilst making the function call so we may end up
> -passing garbage into the callback.
> -
> -References:
> -
> -  Bug 18451 - Xorg server 1.5.2 SEGV during XFixesGetCursorImage()
> -  https://bugs.freedesktop.org/show_bug.cgi?id=18451
> -
> -v2: Drop the unrelated hunk that snuck in when ammending the commit
> -message.
> -
> -Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> -Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
> -Signed-off-by: Keith Packard <keithp@keithp.com>
> -
> -Upstream-Status: accepted
> ----
> -(limited to 'Xext/xace.c')
> -
> -diff --git a/Xext/xace.c b/Xext/xace.c
> -index e10d837..c757cad 100644
> ---- a/Xext/xace.c
> -+++ b/Xext/xace.c
> -@@ -87,7 +87,18 @@ void XaceHookAuditEnd(ClientPtr ptr, int result)
> -  */
> - int XaceHook(int hook, ...)
> - {
> --    pointer calldata;	/* data passed to callback */
> -+    union {
> -+	XaceResourceAccessRec res;
> -+	XaceDeviceAccessRec dev;
> -+	XaceSendAccessRec send;
> -+	XaceReceiveAccessRec recv;
> -+	XaceClientAccessRec client;
> -+	XaceExtAccessRec ext;
> -+	XaceServerAccessRec server;
> -+	XaceScreenAccessRec screen;
> -+	XaceAuthAvailRec auth;
> -+	XaceKeyAvailRec key;
> -+    } u;
> -     int *prv = NULL;	/* points to return value from callback */
> -     va_list ap;		/* argument list */
> -     va_start(ap, hook);
> -@@ -99,117 +110,86 @@ int XaceHook(int hook, ...)
> -      */
> -     switch (hook)
> -     {
> --	case XACE_RESOURCE_ACCESS: {
> --	    XaceResourceAccessRec rec;
> --	    rec.client = va_arg(ap, ClientPtr);
> --	    rec.id = va_arg(ap, XID);
> --	    rec.rtype = va_arg(ap, RESTYPE);
> --	    rec.res = va_arg(ap, pointer);
> --	    rec.ptype = va_arg(ap, RESTYPE);
> --	    rec.parent = va_arg(ap, pointer);
> --	    rec.access_mode = va_arg(ap, Mask);
> --	    rec.status = Success; /* default allow */
> --	    calldata = &rec;
> --	    prv = &rec.status;
> -+	case XACE_RESOURCE_ACCESS:
> -+	    u.res.client = va_arg(ap, ClientPtr);
> -+	    u.res.id = va_arg(ap, XID);
> -+	    u.res.rtype = va_arg(ap, RESTYPE);
> -+	    u.res.res = va_arg(ap, pointer);
> -+	    u.res.ptype = va_arg(ap, RESTYPE);
> -+	    u.res.parent = va_arg(ap, pointer);
> -+	    u.res.access_mode = va_arg(ap, Mask);
> -+	    u.res.status = Success; /* default allow */
> -+	    prv = &u.res.status;
> - 	    break;
> --	}
> --	case XACE_DEVICE_ACCESS: {
> --	    XaceDeviceAccessRec rec;
> --	    rec.client = va_arg(ap, ClientPtr);
> --	    rec.dev = va_arg(ap, DeviceIntPtr);
> --	    rec.access_mode = va_arg(ap, Mask);
> --	    rec.status = Success; /* default allow */
> --	    calldata = &rec;
> --	    prv = &rec.status;
> -+	case XACE_DEVICE_ACCESS:
> -+	    u.dev.client = va_arg(ap, ClientPtr);
> -+	    u.dev.dev = va_arg(ap, DeviceIntPtr);
> -+	    u.dev.access_mode = va_arg(ap, Mask);
> -+	    u.dev.status = Success; /* default allow */
> -+	    prv = &u.dev.status;
> - 	    break;
> --	}
> --	case XACE_SEND_ACCESS: {
> --	    XaceSendAccessRec rec;
> --	    rec.client = va_arg(ap, ClientPtr);
> --	    rec.dev = va_arg(ap, DeviceIntPtr);
> --	    rec.pWin = va_arg(ap, WindowPtr);
> --	    rec.events = va_arg(ap, xEventPtr);
> --	    rec.count = va_arg(ap, int);
> --	    rec.status = Success; /* default allow */
> --	    calldata = &rec;
> --	    prv = &rec.status;
> -+	case XACE_SEND_ACCESS:
> -+	    u.send.client = va_arg(ap, ClientPtr);
> -+	    u.send.dev = va_arg(ap, DeviceIntPtr);
> -+	    u.send.pWin = va_arg(ap, WindowPtr);
> -+	    u.send.events = va_arg(ap, xEventPtr);
> -+	    u.send.count = va_arg(ap, int);
> -+	    u.send.status = Success; /* default allow */
> -+	    prv = &u.send.status;
> - 	    break;
> --	}
> --	case XACE_RECEIVE_ACCESS: {
> --	    XaceReceiveAccessRec rec;
> --	    rec.client = va_arg(ap, ClientPtr);
> --	    rec.pWin = va_arg(ap, WindowPtr);
> --	    rec.events = va_arg(ap, xEventPtr);
> --	    rec.count = va_arg(ap, int);
> --	    rec.status = Success; /* default allow */
> --	    calldata = &rec;
> --	    prv = &rec.status;
> -+	case XACE_RECEIVE_ACCESS:
> -+	    u.recv.client = va_arg(ap, ClientPtr);
> -+	    u.recv.pWin = va_arg(ap, WindowPtr);
> -+	    u.recv.events = va_arg(ap, xEventPtr);
> -+	    u.recv.count = va_arg(ap, int);
> -+	    u.recv.status = Success; /* default allow */
> -+	    prv = &u.recv.status;
> - 	    break;
> --	}
> --	case XACE_CLIENT_ACCESS: {
> --	    XaceClientAccessRec rec;
> --	    rec.client = va_arg(ap, ClientPtr);
> --	    rec.target = va_arg(ap, ClientPtr);
> --	    rec.access_mode = va_arg(ap, Mask);
> --	    rec.status = Success; /* default allow */
> --	    calldata = &rec;
> --	    prv = &rec.status;
> -+	case XACE_CLIENT_ACCESS:
> -+	    u.client.client = va_arg(ap, ClientPtr);
> -+	    u.client.target = va_arg(ap, ClientPtr);
> -+	    u.client.access_mode = va_arg(ap, Mask);
> -+	    u.client.status = Success; /* default allow */
> -+	    prv = &u.client.status;
> - 	    break;
> --	}
> --	case XACE_EXT_ACCESS: {
> --	    XaceExtAccessRec rec;
> --	    rec.client = va_arg(ap, ClientPtr);
> --	    rec.ext = va_arg(ap, ExtensionEntry*);
> --	    rec.access_mode = DixGetAttrAccess;
> --	    rec.status = Success; /* default allow */
> --	    calldata = &rec;
> --	    prv = &rec.status;
> -+	case XACE_EXT_ACCESS:
> -+	    u.ext.client = va_arg(ap, ClientPtr);
> -+	    u.ext.ext = va_arg(ap, ExtensionEntry*);
> -+	    u.ext.access_mode = DixGetAttrAccess;
> -+	    u.ext.status = Success; /* default allow */
> -+	    prv = &u.ext.status;
> - 	    break;
> --	}
> --	case XACE_SERVER_ACCESS: {
> --	    XaceServerAccessRec rec;
> --	    rec.client = va_arg(ap, ClientPtr);
> --	    rec.access_mode = va_arg(ap, Mask);
> --	    rec.status = Success; /* default allow */
> --	    calldata = &rec;
> --	    prv = &rec.status;
> -+	case XACE_SERVER_ACCESS:
> -+	    u.server.client = va_arg(ap, ClientPtr);
> -+	    u.server.access_mode = va_arg(ap, Mask);
> -+	    u.server.status = Success; /* default allow */
> -+	    prv = &u.server.status;
> - 	    break;
> --	}
> - 	case XACE_SCREEN_ACCESS:
> --	case XACE_SCREENSAVER_ACCESS: {
> --	    XaceScreenAccessRec rec;
> --	    rec.client = va_arg(ap, ClientPtr);
> --	    rec.screen = va_arg(ap, ScreenPtr);
> --	    rec.access_mode = va_arg(ap, Mask);
> --	    rec.status = Success; /* default allow */
> --	    calldata = &rec;
> --	    prv = &rec.status;
> -+	case XACE_SCREENSAVER_ACCESS:
> -+	    u.screen.client = va_arg(ap, ClientPtr);
> -+	    u.screen.screen = va_arg(ap, ScreenPtr);
> -+	    u.screen.access_mode = va_arg(ap, Mask);
> -+	    u.screen.status = Success; /* default allow */
> -+	    prv = &u.screen.status;
> - 	    break;
> --	}
> --	case XACE_AUTH_AVAIL: {
> --	    XaceAuthAvailRec rec;
> --	    rec.client = va_arg(ap, ClientPtr);
> --	    rec.authId = va_arg(ap, XID);
> --	    calldata = &rec;
> -+	case XACE_AUTH_AVAIL:
> -+	    u.auth.client = va_arg(ap, ClientPtr);
> -+	    u.auth.authId = va_arg(ap, XID);
> - 	    break;
> --	}
> --	case XACE_KEY_AVAIL: {
> --	    XaceKeyAvailRec rec;
> --	    rec.event = va_arg(ap, xEventPtr);
> --	    rec.keybd = va_arg(ap, DeviceIntPtr);
> --	    rec.count = va_arg(ap, int);
> --	    calldata = &rec;
> -+	case XACE_KEY_AVAIL:
> -+	    u.key.event = va_arg(ap, xEventPtr);
> -+	    u.key.keybd = va_arg(ap, DeviceIntPtr);
> -+	    u.key.count = va_arg(ap, int);
> - 	    break;
> --	}
> --	default: {
> -+	default:
> - 	    va_end(ap);
> - 	    return 0;	/* unimplemented hook number */
> --	}
> -     }
> -     va_end(ap);
> -
> -     /* call callbacks and return result, if any. */
> --    CallCallbacks(&XaceHooks[hook], calldata);
> -+    CallCallbacks(&XaceHooks[hook], &u);
> -     return prv ? *prv : Success;
> - }
> -
> ---
> -cgit v0.9.0.2-2-gbebe
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch
> deleted file mode 100644
> index 7aa487a..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> ----
> - render/glyphstr.h |    1 +
> - 1 file changed, 1 insertion(+)
> -
> ---- xorg-server-1.3.0.0.orig/render/glyphstr.h
> -+++ xorg-server-1.3.0.0/render/glyphstr.h
> -@@ -23,10 +23,11 @@
> -  */
> -
> - #ifndef _GLYPHSTR_H_
> - #define _GLYPHSTR_H_
> -
> -+#include <X11/X.h>
> - #include <X11/extensions/renderproto.h>
> - #include "picture.h"
> - #include "screenint.h"
> - #include "regionstr.h"
> - #include "miscstruct.h"
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch
> deleted file mode 100644
> index b946bb5..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch
> +++ /dev/null
> @@ -1,312 +0,0 @@
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> -Index: xorg-server-1.7.99.2/dix/window.c
> -===================================================================
> ---- xorg-server-1.7.99.2.orig/dix/window.c	2009-11-04 16:25:50.000000000 +0000
> -+++ xorg-server-1.7.99.2/dix/window.c	2010-02-10 17:42:22.719078216 +0000
> -@@ -179,6 +179,8 @@
> -
> - #define SubStrSend(pWin,pParent) (StrSend(pWin) || SubSend(pParent))
> -
> -+char* RootPPM = NULL;
> -+
> - #ifdef DEBUG
> - /******
> -  * PrintWindowTree
> -@@ -304,6 +306,115 @@
> - #endif
> - }
> -
> -+static int
> -+get_int(FILE *fp)
> -+{
> -+  int c = 0;
> -+
> -+  while ((c = getc(fp)) != EOF)
> -+    {
> -+      if (isspace(c))
> -+	continue;
> -+
> -+      if (c == '#')
> -+	while (c = getc(fp))
> -+	  if (c == EOF)
> -+	    return 0;
> -+	  else if (c == '\n')
> -+	    break;
> -+
> -+      if (isdigit(c))
> -+	{
> -+	  int val = c - '0';
> -+	  while ((c = getc(fp)) && isdigit(c))
> -+	    val = (val * 10) + (c - '0');
> -+	  return val;
> -+	}
> -+    }
> -+
> -+  return 0;
> -+}
> -+
> -+static unsigned char*
> -+ppm_load (const char* path, int depth, int *width, int *height)
> -+{
> -+  FILE *fp;
> -+  int   max, n = 0, w, h, i, j, bytes_per_line;
> -+  unsigned char *data, *res, h1, h2;
> -+
> -+  if (depth < 16 || depth > 32)
> -+    return NULL;
> -+
> -+  if (depth > 16)
> -+    depth = 32;
> -+
> -+  fp = fopen (path, "r");
> -+  if (fp == NULL)
> -+    return FALSE;
> -+
> -+  h1 = getc(fp);
> -+  h2 = getc(fp);
> -+
> -+  /* magic is 'P6' for raw ppm */
> -+  if (h1 != 'P' && h2 != '6')
> -+      goto fail;
> -+
> -+  w = get_int(fp);
> -+  h = get_int(fp);
> -+
> -+  if (w == 0 || h == 0)
> -+    goto fail;
> -+
> -+  max = get_int(fp);
> -+
> -+  if (max != 255)
> -+      goto fail;
> -+
> -+  bytes_per_line = ((w * depth + 31) >> 5) << 2;
> -+
> -+  res = data = malloc(bytes_per_line * h);
> -+
> -+  for (i=0; i<h; i++)
> -+    {
> -+      for (j=0; j<w; j++)
> -+	{
> -+	  unsigned char buf[3];
> -+	  fread(buf, 1, 3, fp);
> -+	
> -+	  switch (depth)
> -+	    {
> -+	    case 24:
> -+	    case 32:
> -+	      *data     = buf[2];
> -+	      *(data+1) = buf[1];
> -+	      *(data+2) = buf[0];
> -+	      data += 4;
> -+	      break;
> -+	    case 16:
> -+	    default:
> -+	      *(unsigned short*)data
> -+		= ((buf[0] >> 3) << 11) | ((buf[1] >> 2) << 5) | (buf[2] >> 3);
> -+	      data += 2;
> -+	      break;
> -+	    }
> -+	}
> -+      data += (bytes_per_line - (w*(depth>>3)));
> -+    }
> -+
> -+  data = res;
> -+
> -+  *width  = w;
> -+  *height = h;
> -+
> -+  fclose(fp);
> -+
> -+  return res;
> -+
> -+ fail:
> -+  fclose(fp);
> -+  return NULL;
> -+}
> -+
> - static void
> - MakeRootTile(WindowPtr pWin)
> - {
> -@@ -314,6 +425,36 @@
> -     unsigned char *from, *to;
> -     int i, j;
> -
> -+    if (RootPPM != NULL)
> -+      {
> -+	int            w, h;
> -+	unsigned char *data;
> -+
> -+	if ((data = ppm_load (RootPPM, pScreen->rootDepth, &w, &h)) != NULL)
> -+	  {
> -+	    pWin->background.pixmap
> -+	      = (*pScreen->CreatePixmap)(pScreen, w, h, pScreen->rootDepth, 0);
> -+
> -+	    pWin->backgroundState = BackgroundPixmap;
> -+	    pGC = GetScratchGC(pScreen->rootDepth, pScreen);
> -+	    if (!pWin->background.pixmap || !pGC)
> -+	      FatalError("could not create root tile");
> -+
> -+	    ValidateGC((DrawablePtr)pWin->background.pixmap, pGC);
> -+
> -+	    (*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap,
> -+				  pGC,
> -+				  pScreen->rootDepth,
> -+				  0, 0, w, h, 0, ZPixmap, (char *)data);
> -+	    FreeScratchGC(pGC);
> -+	
> -+	    free(data);
> -+	    return;
> -+	  }
> -+	else
> -+	  ErrorF("Unable to load root window image.");
> -+      }
> -+
> -     pWin->background.pixmap = (*pScreen->CreatePixmap)(pScreen, 4, 4,
> - 						    pScreen->rootDepth, 0);
> -
> -@@ -530,6 +671,7 @@
> - }
> -
> -
> -+
> - WindowPtr
> - RealChildHead(WindowPtr pWin)
> - {
> -Index: xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c
> -===================================================================
> ---- xorg-server-1.7.99.2.orig/hw/kdrive/src/kdrive.c	2010-02-10 17:36:36.000000000 +0000
> -+++ xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c	2010-02-10 17:43:07.797828099 +0000
> -@@ -60,6 +60,9 @@
> -     { 32, 32 }
> - };
> -
> -+int
> -+ProcXFixesHideCursor (ClientPtr client) ;
> -+
> - #define NUM_KD_DEPTHS (sizeof (kdDepths) / sizeof (kdDepths[0]))
> -
> - #define KD_DEFAULT_BUTTONS 5
> -@@ -92,6 +95,9 @@
> -
> - KdOsFuncs	*kdOsFuncs;
> -
> -+extern Bool CursorInitiallyHidden; /* See Xfixes cursor.c */
> -+extern char* RootPPM;		   /* dix/window.c */
> -+
> - void
> - KdSetRootClip (ScreenPtr pScreen, BOOL enable)
> - {
> -@@ -275,6 +281,7 @@
> -     KdSetRootClip (pScreen, TRUE);
> -     if (pScreenPriv->card->cfuncs->dpms)
> - 	(*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState);
> -+
> -     return TRUE;
> - }
> -
> -@@ -553,6 +560,8 @@
> -     ErrorF("-switchCmd       Command to execute on vt switch\n");
> -     ErrorF("-zap             Terminate server on Ctrl+Alt+Backspace\n");
> -     ErrorF("vtxx             Use virtual terminal xx instead of the next available\n");
> -+    ErrorF("-hide-cursor     Start with cursor hidden\n");
> -+    ErrorF("-root-ppm [path] Specify ppm file to use as root window background.\n");
> - }
> -
> - int
> -@@ -616,6 +625,19 @@
> - 	kdSoftCursor = TRUE;
> - 	return 1;
> -     }
> -+    if (!strcmp (argv[i], "-hide-cursor"))
> -+    {
> -+      CursorInitiallyHidden = TRUE;
> -+      return 1;
> -+    }
> -+    if (!strcmp (argv[i], "-root-ppm"))
> -+    {
> -+      if ((i+1) < argc)
> -+	RootPPM =  argv[i+1];
> -+      else
> -+	UseMsg ();
> -+      return 2;
> -+    }
> -     if (!strcmp (argv[i], "-videoTest"))
> -     {
> - 	kdVideoTest = TRUE;
> -Index: xorg-server-1.7.99.2/xfixes/cursor.c
> -===================================================================
> ---- xorg-server-1.7.99.2.orig/xfixes/cursor.c	2009-12-19 01:43:53.000000000 +0000
> -+++ xorg-server-1.7.99.2/xfixes/cursor.c	2010-02-10 17:45:02.089079491 +0000
> -@@ -57,6 +57,7 @@
> - static RESTYPE		CursorClientType;
> - static RESTYPE		CursorHideCountType;
> - static RESTYPE		CursorWindowType;
> -+static Bool             CursorGloballyHidden;
> - static CursorPtr	CursorCurrent[MAXDEVICES];
> - static CursorPtr        pInvisibleCursor = NULL;
> -
> -@@ -65,6 +66,8 @@
> -
> - static void deleteCursorHideCountsForScreen (ScreenPtr pScreen);
> -
> -+Bool CursorInitiallyHidden = FALSE;
> -+
> - #define VERIFY_CURSOR(pCursor, cursor, client, access)			\
> -     do {								\
> - 	int err;							\
> -@@ -150,7 +153,7 @@
> -     if (ConnectionInfo)
> - 	CursorVisible = EnableCursor;
> -
> --    if (cs->pCursorHideCounts != NULL || !CursorVisible) {
> -+    if (cs->pCursorHideCounts != NULL || !CursorVisible || CursorGloballyHidden) {
> -         ret = ((*pScreen->RealizeCursor)(pDev, pScreen, pInvisibleCursor) &&
> - 	       (*pScreen->DisplayCursor) (pDev, pScreen, pInvisibleCursor));
> -     } else {
> -@@ -887,6 +890,12 @@
> - 	return (ret == BadValue) ? BadWindow : ret;
> -     }
> -
> -+    /* Is cursor set to be initially hidden ?, if so reset this
> -+     * flag as now visibility assumed under control of client.
> -+    */
> -+    if (CursorGloballyHidden)
> -+      CursorGloballyHidden = FALSE;
> -+
> -     /*
> -      * Has client hidden the cursor before on this screen?
> -      * If so, just increment the count.
> -@@ -950,9 +959,19 @@
> - 	return (rc == BadValue) ? BadWindow : rc;
> -     }
> -
> -+    /* X was started with cursor hidden, therefore just reset our flag
> -+     * (returning to normal client control) and cause cursor to now be
> -+     * shown.
> -+    */
> -+    if (CursorGloballyHidden == TRUE)
> -+      {
> -+	CursorGloballyHidden = FALSE;
> -+	return (client->noClientException);
> -+      }
> -+
> -     /*
> -      * Has client hidden the cursor on this screen?
> --     * If not, generate an error.
> -+     * If so, generate an error.
> -      */
> -     pChc = findCursorHideCount(client, pWin->drawable.pScreen);
> -     if (pChc == NULL) {
> -@@ -1068,6 +1087,8 @@
> - {
> -     int	i;
> -
> -+    CursorGloballyHidden = CursorInitiallyHidden;
> -+
> -     if (party_like_its_1989)
> - 	CursorVisible = EnableCursor;
> -
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-evdev.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-evdev.patch
> deleted file mode 100644
> index 5d876af..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-evdev.patch
> +++ /dev/null
> @@ -1,520 +0,0 @@
> -# Kdrive evdev support patch, posted by Ander Conselvan de Oliveira at
> -# http://lists.freedesktop.org/archives/xorg/2005-December/011635.html
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> -diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/linux/evdev.c xserver/hw/kdrive/linux/evdev.c
> ---- xserver.original/hw/kdrive/linux/evdev.c	2005-12-16 10:36:05.000000000 -0200
> -+++ xserver/hw/kdrive/linux/evdev.c	2005-12-16 10:40:51.077410192 -0200
> -@@ -31,9 +31,11 @@
> - #include <X11/X.h>
> - #include <X11/Xproto.h>
> - #include <X11/Xpoll.h>
> -+#include <X11/keysym.h>
> - #include "inputstr.h"
> - #include "scrnintstr.h"
> - #include "kdrive.h"
> -+#include "kkeymap.h"
> -
> - #define NUM_EVENTS  128
> - #define ABS_UNSET   -65535
> -@@ -105,9 +107,10 @@
> - {
> -     KdMouseInfo		*mi = closure;
> -     Kevdev		*ke = mi->driver;
> --    int			i;
> -+    int			i, j;
> -     struct input_event	events[NUM_EVENTS];
> -     int			n;
> -+    int                 flags;
> -
> -     n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
> -     if (n <= 0)
> -@@ -115,22 +118,64 @@
> -     n /= sizeof (struct input_event);
> -     for (i = 0; i < n; i++)
> -     {
> -+	flags = KD_MOUSE_DELTA | kdMouseInfo->buttonState;
> - 	switch (events[i].type) {
> - 	case EV_SYN:
> - 	    break;
> - 	case EV_KEY:
> --	    EvdevMotion (mi);
> --	    ASSIGNBIT(ke->key,events[i].code, events[i].value);
> --	    if (events[i].code < 0x100)
> --		ErrorF ("key %d %d\n", events[i].code, events[i].value);
> --	    else
> --		ErrorF ("key 0x%x %d\n", events[i].code, events[i].value);
> -+	  if (events[i].code >= BTN_MOUSE && events[i].code < BTN_JOYSTICK) {
> -+	        switch (events[i].code) {
> -+		case BTN_LEFT:
> -+		  if (events[i].value == 1)
> -+		    flags |= KD_BUTTON_1;
> -+		  else
> -+		    flags &= ~KD_BUTTON_1;
> -+		  break;
> -+		case BTN_MIDDLE:
> -+		  if (events[i].value == 1)
> -+		    flags |= KD_BUTTON_2;
> -+		  else
> -+		    flags &= ~KD_BUTTON_2;
> -+		  break;
> -+		case BTN_RIGHT:
> -+		  if (events[i].value == 1)
> -+		    flags |= KD_BUTTON_3;
> -+		  else
> -+		    flags &= ~KD_BUTTON_3;
> -+		  break;
> -+		default:
> -+		  /* Unknow button */
> -+		  break;
> -+       	        }
> -+		KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
> -+	    }
> - 	    break;
> - 	case EV_REL:
> --	    ke->rel[events[i].code] += events[i].value;
> -+	    if (events[i].code == REL_X) {
> -+	      KdEnqueueMouseEvent (kdMouseInfo, flags, events[i].value, 0);
> -+	    }
> -+	    else if (events[i].code == REL_Y) {
> -+	      KdEnqueueMouseEvent (kdMouseInfo, flags, 0, events[i].value);
> -+	    }
> -+	    else if (events[i].code == REL_WHEEL) {	
> -+	      for (j = 0; j < abs (events[i].value); j++) {
> -+		if (events[i].value > 0)
> -+		  flags |= KD_BUTTON_4;
> -+		else
> -+		  flags |= KD_BUTTON_5;
> -+
> -+		KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
> -+
> -+		if (events[i].value > 0)
> -+		  flags &= ~KD_BUTTON_4;
> -+		else
> -+		  flags &= ~KD_BUTTON_5;
> -+
> -+		KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
> -+	      } /* events[i].code == REL_WHEEL */
> -+	    }
> - 	    break;
> - 	case EV_ABS:
> --	    ke->abs[events[i].code] = events[i].value;
> - 	    break;
> - 	}
> -     }
> -@@ -173,6 +218,12 @@
> - 		fd = open (kdefaultEvdev[i], 2);
> - 		if (fd >= 0)
> - 		{
> -+                    if (ioctl (fd, EVIOCGRAB, 1) < 0)
> -+                    {
> -+                        close (fd);
> -+                        continue;
> -+                    }
> -+
> - 		    mi->name = KdSaveString (kdefaultEvdev[i]);
> - 		    break;
> - 		}
> -@@ -287,7 +338,319 @@
> -     EvdevFini,
> - };
> -
> --#if 0
> -+/* Keyboard */
> -+
> -+int kbd_fd = -1;
> -+int EvdevInputType = 0;
> -+
> -+KeySym evdevKeymap[(194 - 1 + 1) * 2] = {
> -+/* These are directly mapped from DOS scanset 0 */
> -+/*      1     8 */       XK_Escape, NoSymbol,
> -+/*      2     9 */       XK_1,  XK_exclam,
> -+/*      3    10 */       XK_2,  XK_at,
> -+/*      4    11 */       XK_3,  XK_numbersign,
> -+/*      5    12 */       XK_4,  XK_dollar,
> -+/*      6    13 */       XK_5,  XK_percent,
> -+/*      7    14 */       XK_6,  XK_asciicircum,
> -+/*      8    15 */       XK_7,  XK_ampersand,
> -+/*      9    16 */       XK_8,  XK_asterisk,
> -+/*     10    17 */       XK_9,  XK_parenleft,
> -+/*     11    18 */       XK_0,  XK_parenright,
> -+/*     12    19 */       XK_minus,      XK_underscore,
> -+/*     13    20 */       XK_equal,      XK_plus,
> -+/*     14    21 */       XK_BackSpace,  NoSymbol,
> -+/*     15    22 */       XK_Tab,        NoSymbol,
> -+/*     16    23 */       XK_Q,  NoSymbol,
> -+/*     17    24 */       XK_W,  NoSymbol,
> -+/*     18    25 */       XK_E,  NoSymbol,
> -+/*     19    26 */       XK_R,  NoSymbol,
> -+/*     20    27 */       XK_T,  NoSymbol,
> -+/*     21    28 */       XK_Y,  NoSymbol,
> -+/*     22    29 */       XK_U,  NoSymbol,
> -+/*     23    30 */       XK_I,  NoSymbol,
> -+/*     24    31 */       XK_O,  NoSymbol,
> -+/*     25    32 */       XK_P,  NoSymbol,
> -+/*     26    33 */       XK_bracketleft,        XK_braceleft,
> -+/*     27    34 */       XK_bracketright,       XK_braceright,
> -+/*     28    35 */       XK_Return,     NoSymbol,
> -+/*     29    36 */       XK_Control_L,  NoSymbol,
> -+/*     30    37 */       XK_A,  NoSymbol,
> -+/*     31    38 */       XK_S,  NoSymbol,
> -+/*     32    39 */       XK_D,  NoSymbol,
> -+/*     33    40 */       XK_F,  NoSymbol,
> -+/*     34    41 */       XK_G,  NoSymbol,
> -+/*     35    42 */       XK_H,  NoSymbol,
> -+/*     36    43 */       XK_J,  NoSymbol,
> -+/*     37    44 */       XK_K,  NoSymbol,
> -+/*     38    45 */       XK_L,  NoSymbol,
> -+/*     39    46 */       XK_semicolon,  XK_colon,
> -+/*     40    47 */       XK_apostrophe, XK_quotedbl,
> -+/*     41    48 */       XK_grave,      XK_asciitilde,
> -+/*     42    49 */       XK_Shift_L,    NoSymbol,
> -+/*     43    50 */       XK_backslash,  XK_bar,
> -+/*     44    51 */       XK_Z,  NoSymbol,
> -+/*     45    52 */       XK_X,  NoSymbol,
> -+/*     46    53 */       XK_C,  NoSymbol,
> -+/*     47    54 */       XK_V,  NoSymbol,
> -+/*     48    55 */       XK_B,  NoSymbol,
> -+/*     49    56 */       XK_N,  NoSymbol,
> -+/*     50    57 */       XK_M,  NoSymbol,
> -+/*     51    58 */       XK_comma,      XK_less,
> -+/*     52    59 */       XK_period,     XK_greater,
> -+/*     53    60 */       XK_slash,      XK_question,
> -+/*     54    61 */       XK_Shift_R,    NoSymbol,
> -+/*     55    62 */       XK_KP_Multiply,        NoSymbol,
> -+/*     56    63 */       XK_Alt_L,      XK_Meta_L,
> -+/*     57    64 */       XK_space,      NoSymbol,
> -+/*     58    65 */       XK_Caps_Lock,  NoSymbol,
> -+/*     59    66 */       XK_F1, NoSymbol,
> -+/*     60    67 */       XK_F2, NoSymbol,
> -+/*     61    68 */       XK_F3, NoSymbol,
> -+/*     62    69 */       XK_F4, NoSymbol,
> -+/*     63    70 */       XK_F5, NoSymbol,
> -+/*     64    71 */       XK_F6, NoSymbol,
> -+/*     65    72 */       XK_F7, NoSymbol,
> -+/*     66    73 */       XK_F8, NoSymbol,
> -+/*     67    74 */       XK_F9, NoSymbol,
> -+/*     68    75 */       XK_F10,        NoSymbol,
> -+/*     69    76 */       XK_Break,      XK_Pause,
> -+/*     70    77 */       XK_Scroll_Lock,        NoSymbol,
> -+/*     71    78 */       XK_KP_Home,    XK_KP_7,
> -+/*     72    79 */       XK_KP_Up,      XK_KP_8,
> -+/*     73    80 */       XK_KP_Page_Up, XK_KP_9,
> -+/*     74    81 */       XK_KP_Subtract,        NoSymbol,
> -+/*     75    82 */       XK_KP_Left,    XK_KP_4,
> -+/*     76    83 */       XK_KP_5,       NoSymbol,
> -+/*     77    84 */       XK_KP_Right,   XK_KP_6,
> -+/*     78    85 */       XK_KP_Add,     NoSymbol,
> -+/*     79    86 */       XK_KP_End,     XK_KP_1,
> -+/*     80    87 */       XK_KP_Down,    XK_KP_2,
> -+/*     81    88 */       XK_KP_Page_Down,       XK_KP_3,
> -+/*     82    89 */       XK_KP_Insert,  XK_KP_0,
> -+/*     83    90 */       XK_KP_Delete,  XK_KP_Decimal,
> -+/*     84    91 */     NoSymbol,        NoSymbol,
> -+/*     85    92 */     NoSymbol,        NoSymbol,
> -+/*     86    93 */     NoSymbol,        NoSymbol,
> -+/*     87    94 */       XK_F11,        NoSymbol,
> -+/*     88    95 */       XK_F12,        NoSymbol,
> -+
> -+/* These are remapped from the extended set (using ExtendMap) */
> -+
> -+/*     89    96 */       XK_Control_R,  NoSymbol,
> -+/*     90    97 */       XK_KP_Enter,   NoSymbol,
> -+/*     91    98 */       XK_KP_Divide,  NoSymbol,
> -+/*     92    99 */       XK_Sys_Req,    XK_Print,
> -+/*     93   100 */       XK_Alt_R,      XK_Meta_R,
> -+/*     94   101 */       XK_Num_Lock,   NoSymbol,
> -+/*     95   102 */       XK_Home,       NoSymbol,
> -+/*     96   103 */       XK_Up,         NoSymbol,
> -+/*     97   104 */       XK_Page_Up,    NoSymbol,
> -+/*     98   105 */       XK_Left,       NoSymbol,
> -+/*     99   106 */       XK_Right,      NoSymbol,
> -+/*    100   107 */       XK_End,        NoSymbol,
> -+/*    101   108 */       XK_Down,       NoSymbol,
> -+/*    102   109 */       XK_Page_Down,  NoSymbol,
> -+/*    103   110 */       XK_Insert,     NoSymbol,
> -+/*    104   111 */       XK_Delete,     NoSymbol,
> -+/*    105   112 */       XK_Super_L,    NoSymbol,
> -+/*    106   113 */       XK_Super_R,    NoSymbol,
> -+/*    107   114 */       XK_Menu,       NoSymbol,
> -+/*    108   115 */       NoSymbol,      NoSymbol,
> -+/*    109   116 */       NoSymbol,      NoSymbol,
> -+/*    110   117 */       NoSymbol,      NoSymbol,
> -+/*    111   118 */       NoSymbol,      NoSymbol,
> -+/*    112   119 */       NoSymbol,      NoSymbol,
> -+
> -+/*    113   120 */      NoSymbol,     NoSymbol,
> -+/*    114   121 */      NoSymbol,     NoSymbol,
> -+/*    115   122 */      NoSymbol,     NoSymbol,
> -+/*    116   123 */      NoSymbol,     NoSymbol,
> -+/*    117   124 */      NoSymbol,     NoSymbol,
> -+/*    118   125 */      NoSymbol,     NoSymbol,
> -+/*    119   126 */      NoSymbol,     NoSymbol,
> -+/*    120   127 */      NoSymbol,     NoSymbol,
> -+/*    121   128 */      NoSymbol,     NoSymbol,
> -+/*    122   129 */      NoSymbol,     NoSymbol,
> -+/*    123   130 */      NoSymbol,     NoSymbol,
> -+/*    124   131 */      NoSymbol,     NoSymbol,
> -+/*    125   132 */      NoSymbol,     NoSymbol,
> -+/*    126   133 */      NoSymbol,     NoSymbol,
> -+/*    127   134 */      NoSymbol,     NoSymbol,
> -+/*    128   135 */      NoSymbol,     NoSymbol,
> -+/*    129   136 */      NoSymbol,     NoSymbol,
> -+/*    130   137 */      NoSymbol,     NoSymbol,
> -+/*    131   138 */      NoSymbol,     NoSymbol,
> -+/*    132   139 */      NoSymbol,     NoSymbol,
> -+/*    133   140 */      NoSymbol,     NoSymbol,
> -+/*    134   141 */      NoSymbol,     NoSymbol,
> -+/*    135   142 */      NoSymbol,     NoSymbol,
> -+/*    136   143 */      NoSymbol,     NoSymbol,
> -+/*    137   144 */      NoSymbol,     NoSymbol,
> -+/*    138   145 */      NoSymbol,     NoSymbol,
> -+/*    139   146 */      NoSymbol,     NoSymbol,
> -+/*    140   147 */      NoSymbol,     NoSymbol,
> -+/*    141   148 */      NoSymbol,     NoSymbol,
> -+/*    142   149 */      NoSymbol,     NoSymbol,
> -+/*    143   150 */      NoSymbol,     NoSymbol,
> -+/*    144   151 */      NoSymbol,     NoSymbol,
> -+/*    145   152 */      NoSymbol,     NoSymbol,
> -+/*    146   153 */      NoSymbol,     NoSymbol,
> -+/*    147   154 */      NoSymbol,     NoSymbol,
> -+/*    148   155 */      NoSymbol,     NoSymbol,
> -+/*    149   156 */      NoSymbol,     NoSymbol,
> -+/*    150   157 */      NoSymbol,     NoSymbol,
> -+/*    151   158 */      NoSymbol,     NoSymbol,
> -+/*    152   159 */      NoSymbol,     NoSymbol,
> -+/*    153   160 */      NoSymbol,     NoSymbol,
> -+/*    154   161 */      NoSymbol,     NoSymbol,
> -+/*    155   162 */      NoSymbol,     NoSymbol,
> -+/*    156   163 */      NoSymbol,     NoSymbol,
> -+/*    157   164 */      NoSymbol,     NoSymbol,
> -+/*    158   165 */      NoSymbol,     NoSymbol,
> -+/*    159   166 */      NoSymbol,     NoSymbol,
> -+/*    160   167 */      NoSymbol,     NoSymbol,
> -+/*    161   168 */      NoSymbol,     NoSymbol,
> -+/*    162   169 */      NoSymbol,     NoSymbol,
> -+/*    163   170 */      NoSymbol,     NoSymbol,
> -+/*    164   171 */      NoSymbol,     NoSymbol,
> -+/*    165   172 */      NoSymbol,     NoSymbol,
> -+/*    166   173 */      NoSymbol,     NoSymbol,
> -+/*    167   174 */      NoSymbol,     NoSymbol,
> -+/*    168   175 */      NoSymbol,     NoSymbol,
> -+/*    169   176 */      NoSymbol,     NoSymbol,
> -+/*    170   177 */      NoSymbol,     NoSymbol,
> -+/*    171   178 */      NoSymbol,     NoSymbol,
> -+/*    172   179 */      NoSymbol,     NoSymbol,
> -+/*    173   180 */      NoSymbol,     NoSymbol,
> -+/*    174   181 */      NoSymbol,     NoSymbol,
> -+/*    175   182 */      NoSymbol,     NoSymbol,
> -+/*    176   183 */      NoSymbol,     NoSymbol,
> -+/*    177   184 */      NoSymbol,     NoSymbol,
> -+/*    178   185 */      NoSymbol,     NoSymbol,
> -+/*    179   186 */      NoSymbol,     NoSymbol,
> -+/*    180   187 */      NoSymbol,     NoSymbol,
> -+/*    181   188 */      NoSymbol,     NoSymbol,
> -+/*    182   189 */      NoSymbol,     NoSymbol,
> -+/*    183   190 */      NoSymbol,     NoSymbol,
> -+/*    184   191 */      NoSymbol,     NoSymbol,
> -+/*    185   192 */      NoSymbol,     NoSymbol,
> -+/*    186   193 */      NoSymbol,     NoSymbol,
> -+/*    187   194 */      NoSymbol,     NoSymbol,
> -+/*    188   195 */      NoSymbol,     NoSymbol,
> -+/*    189   196 */      NoSymbol,     NoSymbol,
> -+/*    190   197 */      NoSymbol,     NoSymbol,
> -+/*    191   198 */      NoSymbol,     NoSymbol,
> -+/*    192   199 */      NoSymbol,     NoSymbol,
> -+/*    193   200 */      NoSymbol,     NoSymbol,
> -+/*    194   201 */      NoSymbol,     NoSymbol,
> -+};
> -+
> -+static void
> -+EvdevKbdRead (int fd, void *closure)
> -+{
> -+    int i, n;
> -+    struct input_event events[NUM_EVENTS];
> -+
> -+    n = read (fd, &events, NUM_EVENTS * sizeof (struct input_event));
> -+    if (n <= 0)
> -+      return;
> -+
> -+    n /= sizeof (struct input_event);
> -+
> -+    for (i = 0; i < n; i++)
> -+    {
> -+        if (events[i].type == EV_KEY)
> -+      	    KdEnqueueKeyboardEvent (events[i].code, !events[i].value);
> -+    }
> -+}
> -+
> -+static void
> -+EvdevKbdLoad (void)
> -+{
> -+    kdMinScanCode = 0;
> -+    kdMaxScanCode = 193;
> -+    kdKeymapWidth = 2;
> -+    memcpy (kdKeymap, evdevKeymap, sizeof (evdevKeymap));
> -+}
> -+
> -+static int
> -+EvdevKbdInit (void)
> -+{
> -+    int fd, i;
> -+
> -+    if (!EvdevInputType)
> -+        EvdevInputType = KdAllocInputType ();
> -+
> -+    if (!kdKeyboard)
> -+    {
> -+        for (i = 0; i < NUM_DEFAULT_EVDEV; i++)
> -+        {
> -+            fd = open (kdefaultEvdev[i], 2);
> -+            if (fd >= 0)
> -+            {
> -+                kdKeyboard = KdSaveString (kdefaultEvdev[i]);
> -+                break;
> -+            }
> -+	}
> -+    }
> -+    else
> -+    {
> -+        fd = open (kdKeyboard, O_RDWR);
> -+        if (fd < 0)
> -+            return FALSE;
> -+    }
> -+
> -+    if (ioctl (fd, EVIOCGRAB, 1) < 0)
> -+    {
> -+        close (fd);
> -+	return FALSE;
> -+    }
> -+
> -+    if (!KdRegisterFd (EvdevInputType, fd, EvdevKbdRead, NULL))
> -+        return FALSE;
> -+
> -+    kbd_fd = fd;
> -+    return TRUE;
> -+}
> -+
> -+static void
> -+EvdevKbdFini (void)
> -+{
> -+}
> -+
> -+static void
> -+EvdevKbdLeds (int leds)
> -+{
> -+    struct input_event event;
> -+
> -+    memset(&event, 0, sizeof(event));
> -+
> -+    event.type = EV_LED;
> -+    event.code = LED_CAPSL;
> -+    event.value = leds & (1 << 0) ? 1 : 0;
> -+    write(kbd_fd, (char *) &event, sizeof(event));
> -+
> -+    event.type = EV_LED;
> -+    event.code = LED_NUML;
> -+    event.value = leds & (1 << 1) ? 1 : 0;
> -+    write(kbd_fd, (char *) &event, sizeof(event));
> -+
> -+    event.type = EV_LED;
> -+    event.code = LED_SCROLLL;
> -+    event.value = leds & (1 << 2) ? 1 : 0;
> -+    write(kbd_fd, (char *) &event, sizeof(event));
> -+
> -+    event.type = EV_LED;
> -+    event.code = LED_COMPOSE;
> -+    event.value = leds & (1 << 3) ? 1 : 0;
> -+    write(kbd_fd, (char *) &event, sizeof(event));
> -+}
> -+
> -+static void
> -+EvdevKbdBell (int volume, int frequency, int duration)
> -+{
> -+}
> -+
> - KdKeyboardFuncs LinuxEvdevKeyboardFuncs = {
> -     EvdevKbdLoad,
> -     EvdevKbdInit,
> -@@ -296,4 +659,4 @@
> -     EvdevKbdFini,
> -     0,
> - };
> --#endif
> -+
> -diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kdrive.c xserver/hw/kdrive/src/kdrive.c
> ---- xserver.original/hw/kdrive/src/kdrive.c	2005-12-16 10:36:07.000000000 -0200
> -+++ xserver/hw/kdrive/src/kdrive.c	2005-12-16 10:37:09.000000000 -0200
> -@@ -73,6 +73,7 @@
> - Bool		    kdEnabled;
> - int		    kdSubpixelOrder;
> - int		    kdVirtualTerminal = -1;
> -+char		    *kdKeyboard = 0;
> - Bool		    kdSwitchPending;
> - char		    *kdSwitchCmd;
> - DDXPointRec	    kdOrigin;
> -@@ -795,6 +796,14 @@
> - 	    UseMsg ();
> - 	return 2;
> -     }
> -+    if (!strcmp (argv[i], "-keyboard"))
> -+    {
> -+	if ((i+1) < argc)
> -+	    kdKeyboard = argv[i+1];
> -+	else
> -+	    UseMsg ();
> -+	return 2;
> -+    }
> -     if (!strcmp (argv[i], "-rgba"))
> -     {
> - 	if ((i+1) < argc)
> -diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kdrive.h xserver/hw/kdrive/src/kdrive.h
> ---- xserver.original/hw/kdrive/src/kdrive.h	2005-12-16 10:36:07.000000000 -0200
> -+++ xserver/hw/kdrive/src/kdrive.h	2005-12-16 10:37:09.000000000 -0200
> -@@ -416,6 +416,7 @@
> - extern Bool		kdDisableZaphod;
> - extern Bool		kdDontZap;
> - extern int		kdVirtualTerminal;
> -+extern char		*kdKeyboard;
> - extern char		*kdSwitchCmd;
> - extern KdOsFuncs	*kdOsFuncs;
> -
> -@@ -769,7 +770,7 @@
> - ProcessInputEvents (void);
> -
> - extern KdMouseFuncs	LinuxMouseFuncs;
> --extern KdMouseFuncs	LinuxEvdevFuncs;
> -+extern KdMouseFuncs	LinuxEvdevMouseFuncs;
> - extern KdMouseFuncs	Ps2MouseFuncs;
> - extern KdMouseFuncs	BusMouseFuncs;
> - extern KdMouseFuncs	MsMouseFuncs;
> -@@ -777,6 +778,7 @@
> - extern KdMouseFuncs	TsFuncs;
> - #endif
> - extern KdKeyboardFuncs	LinuxKeyboardFuncs;
> -+extern KdKeyboardFuncs	LinuxEvdevKeyboardFuncs;
> - extern KdOsFuncs	LinuxFuncs;
> -
> - extern KdMouseFuncs	VxWorksMouseFuncs;
> -diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kinput.c xserver/hw/kdrive/src/kinput.c
> ---- xserver.original/hw/kdrive/src/kinput.c	2005-12-16 10:36:07.000000000 -0200
> -+++ xserver/hw/kdrive/src/kinput.c	2005-12-16 10:37:09.000000000 -0200
> -@@ -1300,6 +1300,7 @@
> - 	    xE.u.u.type = KeyPress;
> - 	xE.u.u.detail = key_code;
> - 	
> -+#ifndef XKB
> - 	switch (KEYCOL1(key_code))
> - 	{
> - 	case XK_Num_Lock:
> -@@ -1313,6 +1314,7 @@
> - 	    else
> - 		xE.u.u.type = KeyPress;
> - 	}
> -+#endif
> - 	
> - 	/*
> - 	 * Check pressed keys which are already down
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch
> deleted file mode 100644
> index 8a480dc..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch
> +++ /dev/null
> @@ -1,58 +0,0 @@
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> ---- xserver/hw/kdrive/fbdev/fbinit.c~	2006-01-31 17:09:33.000000000 +0100
> -+++ xserver/hw/kdrive/fbdev/fbinit.c	2006-01-31 17:11:55.000000000 +0100
> -@@ -28,6 +28,8 @@
> - #endif
> - #include <fbdev.h>
> -
> -+extern int use_evdev;
> -+
> - void
> - InitCard (char *name)
> - {
> -@@ -45,7 +47,10 @@
> - void
> - InitInput (int argc, char **argv)
> - {
> --    KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
> -+    if (use_evdev)
> -+        KdInitInput (&LinuxEvdevMouseFuncs, &LinuxEvdevKeyboardFuncs);
> -+    else
> -+        KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
> - #ifdef TOUCHSCREEN
> -     KdAddMouseDriver (&TsFuncs);
> - #endif
> ---- xserver/hw/kdrive/src/kdrive.c.orig	2006-01-31 17:13:28.000000000 +0100
> -+++ xserver/hw/kdrive/src/kdrive.c	2006-01-31 17:15:28.000000000 +0100
> -@@ -44,6 +44,8 @@
> - #include "dpmsproc.h"
> - #endif
> -
> -+int use_evdev = 0;
> -+
> - typedef struct _kdDepths {
> -     CARD8   depth;
> -     CARD8   bpp;
> -@@ -687,6 +689,7 @@
> -     ErrorF("-videoTest       Start the server, pause momentarily and exit\n");
> -     ErrorF("-origin X,Y      Locates the next screen in the the virtual screen (Xinerama)\n");
> -     ErrorF("-mouse path[,n]  Filename of mouse device, n is number of buttons\n");
> -+    ErrorF("-use-evdev       Use Linux evdev input\n");
> -     ErrorF("-switchCmd       Command to execute on vt switch\n");
> -     ErrorF("-nozap           Don't terminate server on Ctrl+Alt+Backspace\n");
> -     ErrorF("vtxx             Use virtual terminal xx instead of the next available\n");
> -@@ -796,6 +799,11 @@
> - 	    UseMsg ();
> - 	return 2;
> -     }
> -+    if (!strcmp (argv[i], "-use-evdev"))
> -+    {
> -+	use_evdev = 1;
> -+	return 1;
> -+    }
> -     if (!strcmp (argv[i], "-keyboard"))
> -     {
> - 	if ((i+1) < argc)
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch
> deleted file mode 100644
> index 0062661..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> -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
> -@@ -486,6 +486,8 @@
> -     ki->minScanCode = minKeyCode;
> -     ki->maxScanCode = maxKeyCode;
> - #endif
> -+    ki->minScanCode = 0;
> -+    ki->maxScanCode = NR_KEYS;
> - }
> -
> - /*
> -@@ -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/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/no-serial-probing.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/no-serial-probing.patch
> deleted file mode 100644
> index 6acb834..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/no-serial-probing.patch
> +++ /dev/null
> @@ -1,17 +0,0 @@
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> ---- xserver/hw/kdrive/linux/mouse.c.orig	2004-05-13 14:25:51.000000000 -0700
> -+++ xserver/hw/kdrive/linux/mouse.c	2005-09-22 12:20:47.000000000 -0700
> -@@ -927,8 +927,10 @@ char *kdefaultMouse[] =  {
> -     "/dev/psaux",
> -     "/dev/input/mice",
> -     "/dev/adbmouse",
> -+#ifdef BREAK_MY_SERIAL_CONSOLE
> -     "/dev/ttyS0",
> -     "/dev/ttyS1",
> -+#endif
> - };
> -
> - #define NUM_DEFAULT_MOUSE    (sizeof (kdefaultMouse) / sizeof (kdefaultMouse[0]))
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch
> deleted file mode 100644
> index 37811db..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> -Index: git/configure.ac
> -===================================================================
> ---- git.orig/configure.ac	2009-01-15 20:35:31.000000000 +0000
> -+++ git/configure.ac	2009-01-15 20:35:38.000000000 +0000
> -@@ -62,7 +62,6 @@
> - AC_LIBTOOL_WIN32_DLL
> - AC_DISABLE_STATIC
> - AC_PROG_LIBTOOL
> --DOLT
> - AC_PROG_MAKE_SET
> - PKG_PROG_PKG_CONFIG
> - AC_PROG_LEX
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch
> deleted file mode 100644
> index af3c16c..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch
> +++ /dev/null
> @@ -1,62 +0,0 @@
> -Upstream-Status: Pending
> -
> -Signed-off-by: Yu Ke <ke.yu@intel.com>
> -
> -Index: xorg-server-1.2.0/Makefile.am
> -===================================================================
> ---- xorg-server-1.2.0.orig/Makefile.am	2007-01-23 06:39:15.000000000 +0100
> -+++ xorg-server-1.2.0/Makefile.am	2007-03-28 20:26:19.000000000 +0200
> -@@ -30,6 +30,10 @@
> - XINPUT_DIR=Xi
> - endif
> -
> -+if XKB
> -+XKB_DIR=xkb
> -+endif
> -+
> - if DBE
> - DBE_DIR=dbe
> - endif
> -@@ -46,7 +50,7 @@
> - 	randr \
> - 	render  \
> - 	$(XINPUT_DIR) \
> --	xkb \
> -+	$(XKB_DIR) \
> - 	$(DBE_DIR) \
> - 	$(MFB_DIR) \
> - 	$(AFB_DIR) \
> -Index: xorg-server-1.2.0/configure.ac
> -===================================================================
> ---- xorg-server-1.2.0.orig/configure.ac	2007-01-23 06:39:15.000000000 +0100
> -+++ xorg-server-1.2.0/configure.ac	2007-03-28 20:27:13.000000000 +0200
> -@@ -428,6 +428,7 @@
> - AC_ARG_ENABLE(dpms,           AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
> - AC_ARG_ENABLE(xinput,         AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes])
> - 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])
> -@@ -754,12 +755,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/recipes-graphics/xorg-xserver/xserver-kdrive.inc b/meta/recipes-graphics/xorg-xserver/xserver-kdrive.inc
> deleted file mode 100644
> index c4c2a9f..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive.inc
> +++ /dev/null
> @@ -1,113 +0,0 @@
> -LICENSE = "MIT"
> -DEPENDS = "compositeproto damageproto fixesproto recordproto resourceproto \
> -        scrnsaverproto xineramaproto videoproto xextproto xproto libxau libxext \
> -        libxdmcp libxfont libxrandr tslib virtual/libx11 xtrans bigreqsproto \
> -        xcmiscproto libdrm openssl"
> -
> -LIC_FILES_CHKSUM = "file://COPYING;md5=3dd2bbe3563837f80ed8926b06c1c353"
> -
> -PROVIDES = "virtual/xserver"
> -PACKAGES =+ "xserver-kdrive-fbdev \
> -             xserver-kdrive-sdl \
> -             xserver-kdrive-fake \
> -             xserver-kdrive-xephyr \
> -             xserver-kdrive-epson \
> -             xserver-kdrive-ati \
> -             xserver-kdrive-chips \
> -             xserver-kdrive-i810 \
> -             xserver-kdrive-mach64 \
> -             xserver-kdrive-mga \
> -             xserver-kdrive-neomagic \
> -             xserver-kdrive-nvidia \
> -             xserver-kdrive-pm2 \
> -             xserver-kdrive-r128 \
> -             xserver-kdrive-smi \
> -             xserver-kdrive-vesa \
> -             xserver-kdrive-via \
> -             xserver-kdrive-w100 \	
> - 	"
> -
> -SECTION = "x11/base"
> -DESCRIPTION = "X server from freedesktop.org"
> -DESCRIPTION_xserver-kdrive-fbdev = "X server from freedesktop.org, supporting generic framebuffer devices"
> -DESCRIPTION_xserver-kdrive-fake = "Fake X server"
> -DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window"
> -DESCRIPTION_xserver-kdrive-epson = "X server from freedesktop.org, supporting Epson S1D13806 devices"
> -DESCRIPTION_xserver-kdrive-sdl = "X server from freedesktop.org, SDL version"
> -DESCRIPTION_xserver-kdrive-w100 = "X server from freedesktop.org, supporting the ATI imageon w100 chipset"
> -DESCRIPTION_xserver-kdrive-ati = "X server from freedesktop.org, supporting ATI devices"
> -DESCRIPTION_xserver-kdrive-chips = "X server from freedesktop.org, supporting Chips chipsets"
> -DESCRIPTION_xserver-kdrive-i810 = "X server from freedesktop.org, supporting Intel chipsets"
> -DESCRIPTION_xserver-kdrive-imageon = "X server from freedesktop.org, supporting the ATI imageon 100 chipset"
> -DESCRIPTION_xserver-kdrive-mach64 = "X server from freedesktop.org, supporting mach64 chipsets"
> -DESCRIPTION_xserver-kdrive-mga = "X server from freedesktop.org, supporting mga chipsets"
> -DESCRIPTION_xserver-kdrive-neomagic = "X server from freedesktop.org, supporting neomagic chipsets"
> -DESCRIPTION_xserver-kdrive-nvidia = "X server from freedesktop.org, supporting nvidia devices"
> -DESCRIPTION_xserver-kdrive-pm2 = "X server from freedesktop.org, supporting Permedia2 chipsets"
> -DESCRIPTION_xserver-kdrive-r128 = "X server from freedesktop.org, supporting rage128 chipsets"
> -DESCRIPTION_xserver-kdrive-smi = "X server from freedesktop.org, supporting Silicon Motion devices"
> -DESCRIPTION_xserver-kdrive-vesa = "X server from freedesktop.org, supporting any card with a VESA, VGA or even EGA BIOS. x86 hardware only"
> -DESCRIPTION_xserver-kdrive-via = "X server from freedesktop.org, supporting VIA chipsets"
> -
> -FILES_${PN} += "${libdir}/xserver/SecurityPolicy ${libdir}/xorg"
> -FILES_${PN}-doc +=  "${datadir}/X11/xkb"
> -ALLOW_EMPTY_${PN} = "1"
> -
> -FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev"
> -FILES_xserver-kdrive-fake = "${bindir}/Xfake"
> -FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr"
> -FILES_xserver-kdrive-epson = "${bindir}/Xepson"
> -FILES_xserver-kdrive-sdl = "${bindir}/Xsdl"
> -FILES_xserver-kdrive-w100 = "${bindir}/Xw100"
> -FILES_xserver-kdrive-ati = "${bindir}/Xati"
> -FILES_xserver-kdrive-chips = "${bindir}/Xchips"
> -FILES_xserver-kdrive-i810 = "${bindir}/Xi810"
> -FILES_xserver-kdrive-imageon = "${bindir}/Ximageon"
> -FILES_xserver-kdrive-mach64 = "${bindir}/Xmach64"
> -FILES_xserver-kdrive-mga = "${bindir}/Xmga"
> -FILES_xserver-kdrive-neomagic = "${bindir}/Xneomagic"
> -FILES_xserver-kdrive-nvidia = "${bindir}/Xnvidia"
> -FILES_xserver-kdrive-pm2 = "${bindir}/Xpm2"
> -FILES_xserver-kdrive-r128 = "${bindir}/Xr128"
> -FILES_xserver-kdrive-smi = "${bindir}/Xsmi"
> -FILES_xserver-kdrive-vesa = "${bindir}/Xvesa"
> -FILES_xserver-kdrive-via = "${bindir}/Xvia"
> -
> -RDEPENDS_xserver-kdrive-fbdev = "${PN}"
> -RDEPENDS_xserver-kdrive-fake = "${PN}"
> -RDEPENDS_xserver-kdrive-xephyr = "${PN}"
> -RDEPENDS_xserver-kdrive-epson = "${PN}"
> -RDEPENDS_xserver-kdrive-sdl = "${PN}"
> -RDEPENDS_xserver-kdrive-w100 = "${PN}"
> -RDEPENDS_xserver-kdrive-ati = "${PN}"
> -RDEPENDS_xserver-kdrive-chips = "${PN}"
> -RDEPENDS_xserver-kdrive-i810 = "${PN}"
> -RDEPENDS_xserver-kdrive-mach64 = "${PN}"
> -RDEPENDS_xserver-kdrive-mga = "${PN}"
> -RDEPENDS_xserver-kdrive-neomagic = "${PN}"
> -RDEPENDS_xserver-kdrive-nvidia = "${PN}"
> -RDEPENDS_xserver-kdrive-pm2 = "${PN}"
> -RDEPENDS_xserver-kdrive-r128 = "${PN}"
> -RDEPENDS_xserver-kdrive-smi = "${PN}"
> -RDEPENDS_xserver-kdrive-vesa = "${PN}"
> -RDEPENDS_xserver-kdrive-via = "${PN}"
> -
> -inherit autotools pkgconfig
> -
> -ARM_INSTRUCTION_SET = "arm"
> -
> -EXTRA_OECONF = "--enable-composite --enable-kdrive \
> -                --disable-dga --disable-dri --disable-xinerama \
> -                --disable-xf86misc --disable-xf86vidmode \
> -                --disable-xorg --disable-xorgcfg \
> -                --disable-xkb --disable-xnest --disable-xvfb \
> -                --disable-xevie --disable-xprint --disable-xtrap \
> -                --disable-dmx \
> -                --without-dtrace \
> -                --with-default-font-path=built-ins \
> -                --enable-tslib --enable-xcalibrate \
> -                ac_cv_file__usr_share_X11_sgml_defs_ent=no"
> -
> -do_configure_prepend() {
> -    sed -i -e 's/tslib-0.0/tslib-1.0/' ${S}/configure.ac
> -}
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb b/meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb
> deleted file mode 100644
> index d90dc25..0000000
> --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -require xserver-kdrive.inc
> -
> -DEPENDS += "libxkbfile libxcalibrate font-util pixman"
> -
> -RDEPENDS_${PN} += "xkeyboard-config"
> -
> -EXTRA_OECONF += "--disable-glx"
> -
> -PE = "1"
> -PR = "r30"
> -
> -SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
> -	file://extra-kmodes.patch \
> -	file://disable-apm.patch \
> -	file://no-serial-probing.patch \
> -	file://keyboard-resume-workaround.patch \
> -	file://enable-xcalibrate.patch \
> -	file://hide-cursor-and-ppm-root.patch \
> -	file://fbdev_xrandr_ioctl.patch \
> -	file://fix-newer-xorg-headers.patch \
> -	file://crosscompile.patch \
> -	file://error-address-work-around.patch \
> -        file://fix-bogus-stack-variables.patch \
> -	file://nodolt.patch"
> -#	file://kdrive-evdev.patch
> -#	file://kdrive-use-evdev.patch
> -#	file://enable-builtin-fonts.patch
> -#	file://optional-xkb.patch
> -
> -SRC_URI[md5sum] = "cafc4e2d4ef6cf6e47f3e7dffeb3346a"
> -SRC_URI[sha256sum] = "a89f13b166b412930fe418ff50032dd2cde8bb181d8b47b5ca6f848d218fdcf2"
> -
> -
> -S = "${WORKDIR}/xorg-server-${PV}"
>
Ross Burton - Aug. 31, 2012, 7:49 p.m.
Hi Saul,

On 31 August 2012 17:27, Saul Wold <sgw@linux.intel.com> wrote:
> I really can't take this patch set until the corresponding change is made to
> the meta-yocto BSPs as this will cause breakage there.

I understand why I accidentally removed those patches.  Thanks to the
magic of git reflog I recovered them, put them on the ross/xorg
branch, and mailed them to poky@.

Ross

Patch

diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch
deleted file mode 100644
index 87595d0..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/crosscompile.patch
+++ /dev/null
@@ -1,23 +0,0 @@ 
-Upstream-Status: Inappropriate [cross compiling]
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
-Index: xorg-server-1.7.99.2/configure.ac
-===================================================================
---- xorg-server-1.7.99.2.orig/configure.ac	2010-01-29 16:38:49.000000000 +0000
-+++ xorg-server-1.7.99.2/configure.ac	2010-01-29 16:42:39.000000000 +0000
-@@ -503,14 +503,10 @@
- 
- dnl Uses --default-font-path if set, otherwise checks for /etc/X11/fontpath.d,
- dnl otherwise uses standard subdirectories of FONTROOTDIR
--AC_CHECK_FILE([${sysconfdir}/X11/fontpath.d],
--	[DEFAULT_FONT_PATH='catalogue:${sysconfdir}/X11/fontpath.d'],
--	[
- 		DEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/"
- 		case $host_os in
- 			darwin*)    DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;;
- 		esac
--	])
- AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]),
- 				[ FONTPATH="$withval" ],
- 				[ FONTPATH="${DEFAULT_FONT_PATH}" ])
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/disable-apm.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/disable-apm.patch
deleted file mode 100644
index c22b1c0..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/disable-apm.patch
+++ /dev/null
@@ -1,24 +0,0 @@ 
-Upstream-Status: Inappropriate [disable feature]
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
---- xserver/hw/kdrive/linux/linux.c.orig	2005-04-23 15:56:13.988849232 +0000
-+++ xserver/hw/kdrive/linux/linux.c	2005-04-23 15:57:05.001094192 +0000
-@@ -342,7 +342,7 @@
-     /*
-      * Open the APM driver
-      */
--    LinuxApmFd = open ("/dev/apm_bios", 2);
-+    /*LinuxApmFd = open ("/dev/apm_bios", 2);
-     if (LinuxApmFd < 0 && errno == ENOENT)
- 	LinuxApmFd = open ("/dev/misc/apm_bios", 2); 
-     if (LinuxApmFd >= 0)
-@@ -352,7 +352,7 @@
- 	RegisterBlockAndWakeupHandlers (LinuxApmBlock, LinuxApmWakeup, 0);
- 	AddEnabledDevice (LinuxApmFd);
-     }
--	
-+    */	
-     /*
-      * now get the VT
-      */
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-builtin-fonts.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-builtin-fonts.patch
deleted file mode 100644
index 98d5176..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-builtin-fonts.patch
+++ /dev/null
@@ -1,16 +0,0 @@ 
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
---- xorg-server-X11R7.1-1.1.0/dix/dixfonts.c.orig	2006-06-08 14:49:12.158684250 +0200
-+++ xorg-server-X11R7.1-1.1.0/dix/dixfonts.c	2006-06-08 14:49:52.493205000 +0200
-@@ -52,8 +52,8 @@
- /* $Xorg: dixfonts.c,v 1.4 2000/08/17 19:48:18 cpqbld Exp $ */
- 
- #define NEED_REPLIES
- #ifdef HAVE_DIX_CONFIG_H
--#include <dix-config.h>
-+#include <kdrive-config.h>
- #endif
- 
- #include <X11/X.h>
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch
deleted file mode 100644
index efac5ef..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/enable-xcalibrate.patch
+++ /dev/null
@@ -1,152 +0,0 @@ 
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
----
- Xext/Makefile.am           |    6 ++++++
- configure.ac               |   11 +++++++++--
- include/kdrive-config.h.in |    3 +++
- mi/miinitext.c             |    6 ++++++
- 4 files changed, 24 insertions(+), 2 deletions(-)
-
-Index: xorg-server-1.7.99.2/mi/miinitext.c
-===================================================================
---- xorg-server-1.7.99.2.orig/mi/miinitext.c	2010-02-10 18:54:11.959086237 +0000
-+++ xorg-server-1.7.99.2/mi/miinitext.c	2010-02-10 18:54:12.429078513 +0000
-@@ -264,6 +264,9 @@
- #ifdef DMXEXT
- extern void DMXExtensionInit(INITARGS);
- #endif
-+#ifdef XCALIBRATE
-+extern void XCalibrateExtensionInit(INITARGS);
-+#endif
- #ifdef XFIXES
- extern void XFixesExtensionInit(INITARGS);
- #endif
-@@ -493,6 +496,9 @@
- 	GlxPushProvider(&__glXDRISWRastProvider);
-     if (!noGlxExtension) GlxExtensionInit();
- #endif
-+#ifdef  XCALIBRATE
-+    XCalibrateExtensionInit ();
-+#endif
- }
- 
- #else /* XFree86LOADER */
-Index: xorg-server-1.7.99.2/configure.ac
-===================================================================
---- xorg-server-1.7.99.2.orig/configure.ac	2010-02-10 18:54:11.959086237 +0000
-+++ xorg-server-1.7.99.2/configure.ac	2010-02-11 11:49:50.710736962 +0000
-@@ -1985,7 +1985,7 @@
-     fi
- 
- 
--    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_CHECK_LIB(ts, ts_open, [HAVE_TSLIB="yes"])
-     fi
-@@ -2039,7 +2039,7 @@
-     KDRIVE_LOCAL_LIBS="$MAIN_LIB $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="$TSLIB_LIBS $KDRIVE_LOCAL_LIBS $XSERVER_SYS_LIBS $GLX_SYS_LIBS $DLOPEN_LIBS"
-+    KDRIVE_LIBS="$KDRIVE_LOCAL_LIBS $TSLIB_LIBS $XSERVER_SYS_LIBS $GLX_SYS_LIBS $DLOPEN_LIBS"
- 
-     AC_SUBST([XEPHYR_LIBS])
-     AC_SUBST([XEPHYR_INCS])
-Index: xorg-server-1.7.99.2/include/kdrive-config.h.in
-===================================================================
---- xorg-server-1.7.99.2.orig/include/kdrive-config.h.in	2010-02-10 18:54:11.959086237 +0000
-+++ xorg-server-1.7.99.2/include/kdrive-config.h.in	2010-02-10 18:54:12.429078513 +0000
-@@ -28,4 +28,7 @@
- /* Have execinfo.h for backtrace(). */
- #undef HAVE_EXECINFO_H
- 
-+/* Enable XCalibrate extension */
-+#undef XCALIBRATE
-+
- #endif /* _KDRIVE_CONFIG_H_ */
-Index: xorg-server-1.7.99.2/hw/kdrive/linux/tslib.c
-===================================================================
---- xorg-server-1.7.99.2.orig/hw/kdrive/linux/tslib.c	2010-02-10 18:58:12.669078495 +0000
-+++ xorg-server-1.7.99.2/hw/kdrive/linux/tslib.c	2010-02-10 19:04:56.927828767 +0000
-@@ -50,12 +50,15 @@
-     int fd;
-     int lastx, lasty;
-     struct tsdev *tsDev;
--    void (*raw_event_hook)(int x, int y, int pressure, void *closure);
--    void *raw_event_closure;
-     int phys_screen;
- };
- 
- 
-+/* For XCalibrate extension */
-+void (*tslib_raw_event_hook)(int x, int y, int pressure, void *closure);
-+void *tslib_raw_event_closure;
-+
-+
- static void
- TsRead (int fd, void *closure)
- {
-@@ -65,10 +68,10 @@
-     long                x = 0, y = 0;
-     unsigned long       flags;
- 
--    if (private->raw_event_hook) {
-+    if (tslib_raw_event_hook) {
-         while (ts_read_raw(private->tsDev, &event, 1) == 1)
--            private->raw_event_hook (event.x, event.y, event.pressure,
--                                     private->raw_event_closure);
-+            tslib_raw_event_hook (event.x, event.y, event.pressure,
-+                                     tslib_raw_event_closure);
-         return;
-     }
- 
-@@ -111,8 +114,8 @@
- {
-     struct TslibPrivate *private = pi->driverPrivate;
- 
--    private->raw_event_hook = NULL;
--    private->raw_event_closure = NULL;
-+    tslib_raw_event_hook = NULL;
-+    tslib_raw_event_closure = NULL;
-     if (!pi->path) {
-         pi->path = strdup("/dev/input/touchscreen0");
-         ErrorF("[tslib/TslibEnable] no device path given, trying %s\n", pi->path);
-Index: xorg-server-1.7.99.2/Xext/xcalibrate.c
-===================================================================
---- xorg-server-1.7.99.2.orig/Xext/xcalibrate.c	2010-02-10 18:59:24.097829840 +0000
-+++ xorg-server-1.7.99.2/Xext/xcalibrate.c	2010-02-11 11:51:00.930735731 +0000
-@@ -115,6 +115,7 @@
- 
-   memset (&rep, 0, sizeof (rep));
-   rep.type = X_Reply;
-+  rep.length = 0;
-   rep.sequenceNumber = client->sequence;
- 
-   if (stuff->on)
-@@ -158,6 +159,7 @@
- 
-       swaps (&rep.sequenceNumber, n);
-       swaps (&rep.status, n);
-+      swapl (&rep.length, n);
-     }
-   WriteToClient(client, sizeof (rep), (char *) &rep);
-   return (client->noClientException);
-@@ -186,6 +188,7 @@
- 
-   memset (&rep, 0, sizeof (rep));
-   rep.type = X_Reply;
-+  rep.length = 0;
-   rep.sequenceNumber = client->sequence;
-   rep.x = stuff->x;
-   rep.y = stuff->y;
-@@ -198,6 +201,7 @@
- 
-       swaps (&rep.x, n);
-       swaps (&rep.y, n);
-+      swapl (&rep.length, n);
-     }
-   WriteToClient(client, sizeof (rep), (char *) &rep);
-   return (client->noClientException);
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/error-address-work-around.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/error-address-work-around.patch
deleted file mode 100644
index 98a946a..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/error-address-work-around.patch
+++ /dev/null
@@ -1,364 +0,0 @@ 
-Upstream-Status: Inappropriate
-
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/dix/window.c xorg-server-1.7.99.2/dix/window.c
---- xorg-server-1.7.99.2.ORIG/dix/window.c	2012-01-04 13:12:40.417640130 -0700
-+++ xorg-server-1.7.99.2/dix/window.c	2012-01-04 12:13:20.678605493 -0700
-@@ -559,10 +559,10 @@
-     box.y1 = 0;
-     box.x2 = pScreen->width;
-     box.y2 = pScreen->height;
--    REGION_INIT(pScreen, &pWin->clipList, &box, 1);
--    REGION_INIT(pScreen, &pWin->winSize, &box, 1);
--    REGION_INIT(pScreen, &pWin->borderSize, &box, 1);
--    REGION_INIT(pScreen, &pWin->borderClip, &box, 1);
-+    REGION_INIT2(pScreen, &pWin->clipList, &box, 1);
-+    REGION_INIT2(pScreen, &pWin->winSize, &box, 1);
-+    REGION_INIT2(pScreen, &pWin->borderSize, &box, 1);
-+    REGION_INIT2(pScreen, &pWin->borderClip, &box, 1);
- 
-     pWin->drawable.class = InputOutput;
-     pWin->optional->visual = pScreen->rootVisual;
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_accel.c xorg-server-1.7.99.2/exa/exa_accel.c
---- xorg-server-1.7.99.2.ORIG/exa/exa_accel.c	2009-12-11 11:20:48.000000000 -0700
-+++ xorg-server-1.7.99.2/exa/exa_accel.c	2012-01-04 12:58:11.218616328 -0700
-@@ -1275,7 +1275,7 @@
- 	Box.x2 = Box.x1 + w;
- 	Box.y2 = Box.y1 + h;
- 
--	REGION_INIT(pScreen, &Reg, &Box, 1);
-+	REGION_INIT2(pScreen, &Reg, &Box, 1);
- 
- 	pixmaps[0].as_dst = FALSE;
- 	pixmaps[0].as_src = TRUE;
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa.c xorg-server-1.7.99.2/exa/exa.c
---- xorg-server-1.7.99.2.ORIG/exa/exa.c	2009-12-11 11:20:48.000000000 -0700
-+++ xorg-server-1.7.99.2/exa/exa.c	2012-01-04 12:56:30.592593427 -0700
-@@ -161,7 +161,7 @@
-     if (box.x1 >= box.x2 || box.y1 >= box.y2)
- 	return;
- 
--    REGION_INIT(pScreen, &region, &box, 1);
-+    REGION_INIT2(pScreen, &region, &box, 1);
-     DamageRegionAppend(&pPix->drawable, &region);
-     DamageRegionProcessPending(&pPix->drawable);
-     REGION_UNINIT(pScreen, &region);
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_classic.c xorg-server-1.7.99.2/exa/exa_classic.c
---- xorg-server-1.7.99.2.ORIG/exa/exa_classic.c	2009-11-28 13:44:58.000000000 -0700
-+++ xorg-server-1.7.99.2/exa/exa_classic.c	2012-01-04 12:54:50.586576675 -0700
-@@ -131,8 +131,8 @@
-     box.y1 = 0;
-     box.x2 = w;
-     box.y2 = h;
--    REGION_INIT(pScreen, &pExaPixmap->validSys, &box, 0);
--    REGION_INIT(pScreen, &pExaPixmap->validFB, &box, 0);
-+    REGION_INIT2(pScreen, &pExaPixmap->validSys, &box, 0);
-+    REGION_INIT2(pScreen, &pExaPixmap->validFB, &box, 0);
- 
-     exaSetAccelBlock(pExaScr, pExaPixmap,
-                      w, h, bpp);
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_migration_classic.c xorg-server-1.7.99.2/exa/exa_migration_classic.c
---- xorg-server-1.7.99.2.ORIG/exa/exa_migration_classic.c	2009-11-28 13:44:58.000000000 -0700
-+++ xorg-server-1.7.99.2/exa/exa_migration_classic.c	2012-01-04 12:54:43.077500333 -0700
-@@ -177,7 +177,7 @@
- 		box.x2 = max(pValidExt->x2, pDamageExt->x2);
- 		box.y2 = max(pValidExt->y2, pDamageExt->y2);
- 
--		REGION_INIT(pScreen, &closure, &box, 0);
-+		REGION_INIT2(pScreen, &closure, &box, 0);
- 		REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, &closure);
- 	    } else
- 		REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, pending_damage);
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_render.c xorg-server-1.7.99.2/exa/exa_render.c
---- xorg-server-1.7.99.2.ORIG/exa/exa_render.c	2009-11-28 13:44:58.000000000 -0700
-+++ xorg-server-1.7.99.2/exa/exa_render.c	2012-01-04 12:59:18.234297490 -0700
-@@ -576,7 +576,7 @@
- 	 * (see use of DamagePendingRegion in exaCopyDirty)
- 	 */
- 
--	REGION_INIT(pScreen, &region, &box, 1);
-+	REGION_INIT2(pScreen, &region, &box, 1);
-     
- 	DamageRegionAppend(pDst->pDrawable, &region);
- 
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_unaccel.c xorg-server-1.7.99.2/exa/exa_unaccel.c
---- xorg-server-1.7.99.2.ORIG/exa/exa_unaccel.c	2009-12-11 11:20:48.000000000 -0700
-+++ xorg-server-1.7.99.2/exa/exa_unaccel.c	2012-01-04 12:59:25.915375559 -0700
-@@ -344,7 +344,7 @@
- 	Box.x2 = Box.x1 + w;
- 	Box.y2 = Box.y1 + h;
- 
--	REGION_INIT(pScreen, &Reg, &Box, 1);
-+	REGION_INIT2(pScreen, &Reg, &Box, 1);
- 
- 	pExaScr->prepare_access_reg(pPix, EXA_PREPARE_SRC, &Reg);
-     } else
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/fb/fboverlay.c xorg-server-1.7.99.2/fb/fboverlay.c
---- xorg-server-1.7.99.2.ORIG/fb/fboverlay.c	2009-11-04 09:25:50.000000000 -0700
-+++ xorg-server-1.7.99.2/fb/fboverlay.c	2012-01-04 12:24:43.855400893 -0700
-@@ -147,7 +147,7 @@
- 					    pbits))
- 	    return FALSE;
- 	pScrPriv->layer[i].u.run.pixmap = pPixmap;
--	REGION_INIT(pScreen, &pScrPriv->layer[i].u.run.region, &box, 0);
-+	REGION_INIT2(pScreen, &pScrPriv->layer[i].u.run.region, &box, 0);
-     }
-     pScreen->devPrivate = pScrPriv->layer[0].u.run.pixmap;
-     return TRUE;
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kdrive.c xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c
---- xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kdrive.c	2012-01-04 13:12:40.418640141 -0700
-+++ xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c	2012-01-04 13:05:08.771897914 -0700
-@@ -144,8 +144,8 @@
- 	box.y2 = pScreen->height;
- 	pWin->drawable.width = pScreen->width;
- 	pWin->drawable.height = pScreen->height;
--	REGION_INIT (pScreen, &pWin->winSize, &box, 1);
--	REGION_INIT (pScreen, &pWin->borderSize, &box, 1);
-+	REGION_INIT2 (pScreen, &pWin->winSize, &box, 1);
-+	REGION_INIT2 (pScreen, &pWin->borderSize, &box, 1);
- 	REGION_RESET(pScreen, &pWin->borderClip, &box);
- 	REGION_BREAK (pWin->drawable.pScreen, &pWin->clipList);
-     }
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kxv.c xorg-server-1.7.99.2/hw/kdrive/src/kxv.c
---- xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kxv.c	2008-11-14 14:27:05.000000000 -0700
-+++ xorg-server-1.7.99.2/hw/kdrive/src/kxv.c	2012-01-04 13:07:32.625411023 -0700
-@@ -674,7 +674,7 @@
-   WinBox.y2 = WinBox.y1 + portPriv->drw_h;
-   
-   /* clip to the window composite clip */
--  REGION_INIT(portPriv->pDraw->pScreen, &WinRegion, &WinBox, 1);
-+  REGION_INIT2(portPriv->pDraw->pScreen, &WinRegion, &WinBox, 1);
-   REGION_INIT(portPriv->pDraw->pScreen, &ClipRegion, NullBox, 1);
-   REGION_INTERSECT(portPriv->pDraw->pScreen, &ClipRegion, &WinRegion, portPriv->pCompositeClip); 
-   
-@@ -738,7 +738,7 @@
-   WinBox.y2 = WinBox.y1 + portPriv->drw_h;
-   
-   /* clip to the window composite clip */
--  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
-+  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
-   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
-   REGION_INTERSECT(Screen, &ClipRegion, &WinRegion, portPriv->pCompositeClip); 
- 
-@@ -752,7 +752,7 @@
-      VPBox.x2 = screen->width;
-      VPBox.y2 = screen->height;
- 
--     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
-+     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
-      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg); 
-      REGION_UNINIT(pScreen, &VPReg);
-   }
-@@ -827,7 +827,7 @@
-   WinBox.y2 = WinBox.y1 + portPriv->drw_h;
-   
-   /* clip to the window composite clip */
--  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
-+  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
-   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
-   REGION_INTERSECT(Screen, &ClipRegion, &WinRegion, portPriv->pCompositeClip); 
- 
-@@ -841,7 +841,7 @@
-      VPBox.x2 = screen->width;
-      VPBox.y2 = screen->height;
- 
--     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
-+     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
-      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg); 
-      REGION_UNINIT(pScreen, &VPReg);
-   }
-@@ -1337,7 +1337,7 @@
-   WinBox.x2 = WinBox.x1 + drw_w;
-   WinBox.y2 = WinBox.y1 + drw_h;
-   
--  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
-+  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
-   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
-   REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);   
- 
-@@ -1350,7 +1350,7 @@
-      VPBox.x2 = screen->width;
-      VPBox.y2 = screen->height;
- 
--     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
-+     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
-      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg); 
-      REGION_UNINIT(pScreen, &VPReg);
-   }
-@@ -1490,7 +1490,7 @@
-   WinBox.x2 = WinBox.x1 + drw_w;
-   WinBox.y2 = WinBox.y1 + drw_h;
-   
--  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
-+  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
-   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
-   REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);   
- 
-@@ -1637,7 +1637,7 @@
-   WinBox.x2 = WinBox.x1 + drw_w;
-   WinBox.y2 = WinBox.y1 + drw_h;
-   
--  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
-+  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
-   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
-   REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);   
- 
-@@ -1650,7 +1650,7 @@
-      VPBox.x2 = pScreen->width;
-      VPBox.y2 = pScreen->height;
- 
--     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
-+     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
-      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg); 
-      REGION_UNINIT(pScreen, &VPReg);
-   }
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/include/regionstr.h xorg-server-1.7.99.2/include/regionstr.h
---- xorg-server-1.7.99.2.ORIG/include/regionstr.h	2009-11-04 09:25:50.000000000 -0700
-+++ xorg-server-1.7.99.2/include/regionstr.h	2012-01-04 12:13:06.174461574 -0700
-@@ -152,6 +152,12 @@
-     } \
-  }
- 
-+#define REGION_INIT2(_pScreen, _pReg, _rect, _size) \
-+{ \
-+        (_pReg)->extents = *(_rect); \
-+        (_pReg)->data = (RegDataPtr)NULL; \
-+ }
-+
- 
- #define REGION_UNINIT(_pScreen, _pReg) \
- { \
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/micopy.c xorg-server-1.7.99.2/mi/micopy.c
---- xorg-server-1.7.99.2.ORIG/mi/micopy.c	2009-11-04 09:25:50.000000000 -0700
-+++ xorg-server-1.7.99.2/mi/micopy.c	2012-01-04 12:44:17.003144611 -0700
-@@ -315,7 +315,7 @@
- 	box.y1 = box_y1;
- 	box.x2 = box_x2;
- 	box.y2 = box_y2;
--	REGION_INIT(pGC->pScreen, &rgnDst, &box, 1);
-+	REGION_INIT2(pGC->pScreen, &rgnDst, &box, 1);
-     }
-     
-     /* Clip against complex source if needed */
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/miexpose.c xorg-server-1.7.99.2/mi/miexpose.c
---- xorg-server-1.7.99.2.ORIG/mi/miexpose.c	2009-11-04 09:25:50.000000000 -0700
-+++ xorg-server-1.7.99.2/mi/miexpose.c	2012-01-04 12:46:29.400478668 -0700
-@@ -206,7 +206,7 @@
- 	box.x2 = pSrcDrawable->width;
- 	box.y2 = pSrcDrawable->height;
- 	prgnSrcClip = &rgnSrcRec;
--	REGION_INIT(pscr, prgnSrcClip, &box, 1);
-+	REGION_INIT2(pscr, prgnSrcClip, &box, 1);
- 	pSrcWin = NULL;
-     }
- 
-@@ -239,11 +239,11 @@
- 	box.x2 = pDstDrawable->width;
- 	box.y2 = pDstDrawable->height;
- 	prgnDstClip = &rgnDstRec;
--	REGION_INIT(pscr, prgnDstClip, &box, 1);
-+	REGION_INIT2(pscr, prgnDstClip, &box, 1);
-     }
- 
-     /* drawable-relative source region */
--    REGION_INIT(pscr, &rgnExposed, &srcBox, 1);
-+    REGION_INIT2(pscr, &rgnExposed, &srcBox, 1);
- 
-     /* now get the hidden parts of the source box*/
-     REGION_SUBTRACT(pscr, &rgnExposed, &rgnExposed, prgnSrcClip);
-@@ -491,7 +491,7 @@
- 	    box = *REGION_EXTENTS( pWin->drawable.pScreen, exposures);
- 	    if (exposures == prgn) {
- 		exposures = &expRec;
--		REGION_INIT( pWin->drawable.pScreen, exposures, &box, 1);
-+		REGION_INIT2( pWin->drawable.pScreen, exposures, &box, 1);
- 		REGION_RESET( pWin->drawable.pScreen, prgn, &box);
- 	    } else {
- 		REGION_RESET( pWin->drawable.pScreen, exposures, &box);
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/mioverlay.c xorg-server-1.7.99.2/mi/mioverlay.c
---- xorg-server-1.7.99.2.ORIG/mi/mioverlay.c	2009-11-04 09:25:50.000000000 -0700
-+++ xorg-server-1.7.99.2/mi/mioverlay.c	2012-01-04 12:47:50.114300224 -0700
-@@ -209,8 +209,8 @@
- 		fullBox.y1 = 0;
- 		fullBox.x2 = pScreen->width;
- 		fullBox.y2 = pScreen->height;
--		REGION_INIT(pScreen, &(pTree->borderClip), &fullBox, 1);
--		REGION_INIT(pScreen, &(pTree->clipList), &fullBox, 1);
-+		REGION_INIT2(pScreen, &(pTree->borderClip), &fullBox, 1);
-+		REGION_INIT2(pScreen, &(pTree->clipList), &fullBox, 1);
- 	    }
- 	} else xfree(pTree);
-     }
-@@ -1027,7 +1027,7 @@
- 	    box = *REGION_EXTENTS(pScreen, exposures);
- 	    if (exposures == prgn) {
- 		exposures = &expRec;
--		REGION_INIT(pScreen, exposures, &box, 1);
-+		REGION_INIT2(pScreen, exposures, &box, 1);
- 		REGION_RESET(pScreen, prgn, &box);
- 	    } else {
- 		REGION_RESET(pScreen, exposures, &box);
-@@ -1672,7 +1672,7 @@
-     box.x1 = x1; box.x2 = x2;
-     box.y1 = y1; box.y2 = y2;
- 
--    REGION_INIT(pScreen, &reg, &box, 1);
-+    REGION_INIT2(pScreen, &reg, &box, 1);
- 
-     REGION_INTERSECT(pScreen, &reg, &reg, clipList);
-     if (generateExposures)
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/miwindow.c xorg-server-1.7.99.2/mi/miwindow.c
---- xorg-server-1.7.99.2.ORIG/mi/miwindow.c	2009-11-04 09:25:50.000000000 -0700
-+++ xorg-server-1.7.99.2/mi/miwindow.c	2012-01-04 12:48:38.055787835 -0700
-@@ -111,7 +111,7 @@
-     box.y2 = y2;
- 
-     pScreen = pWin->drawable.pScreen;
--    REGION_INIT(pScreen, &reg, &box, 1);
-+    REGION_INIT2(pScreen, &reg, &box, 1);
- 
-     REGION_INTERSECT(pScreen, &reg, &reg, &pWin->clipList);
-     if (generateExposures)
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/miext/damage/damage.c xorg-server-1.7.99.2/miext/damage/damage.c
---- xorg-server-1.7.99.2.ORIG/miext/damage/damage.c	2009-11-04 09:25:50.000000000 -0700
-+++ xorg-server-1.7.99.2/miext/damage/damage.c	2012-01-04 12:51:04.883281430 -0700
-@@ -324,7 +324,7 @@
- 		box.y1 = draw_y;
- 		box.x2 = draw_x + pDamage->pDrawable->width;
- 		box.y2 = draw_y + pDamage->pDrawable->height;
--		REGION_INIT(pScreen, &pixClip, &box, 1);
-+		REGION_INIT2(pScreen, &pixClip, &box, 1);
- 		REGION_INTERSECT (pScreen, pDamageRegion, pRegion, &pixClip);
- 		REGION_UNINIT(pScreen, &pixClip);
- 	    }
-@@ -2085,7 +2085,7 @@
- 	    box.y1 = pDrawable->y;
- 	    box.x2 = pDrawable->x + pDrawable->width;
- 	    box.y2 = pDrawable->y + pDrawable->height;
--	    REGION_INIT (pDrawable->pScreen, &pixmapClip, &box, 1);
-+	    REGION_INIT2 (pDrawable->pScreen, &pixmapClip, &box, 1);
- 	    pClip = &pixmapClip;
- 	}
- 	REGION_TRANSLATE (pDrawable->pScreen, &pDamage->damage, pDrawable->x, pDrawable->y);
-diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/Xext/xace.c xorg-server-1.7.99.2/Xext/xace.c
---- xorg-server-1.7.99.2.ORIG/Xext/xace.c	2009-11-04 09:25:50.000000000 -0700
-+++ xorg-server-1.7.99.2/Xext/xace.c	2012-01-04 12:49:36.850385965 -0700
-@@ -255,7 +255,7 @@
-     imageBox.y1 = y;
-     imageBox.x2 = x + w;
-     imageBox.y2 = y + h;
--    REGION_INIT(pScreen, &imageRegion, &imageBox, 1);
-+    REGION_INIT2(pScreen, &imageRegion, &imageBox, 1);
-     REGION_NULL(pScreen, &censorRegion);
- 
-     /* censorRegion = imageRegion - visibleRegion */
---- xorg-server-1.7.99.2.ORIG/mi/mibank.c	2009-11-04 09:25:50.000000000 -0700
-+++ xorg-server-1.7.99.2/mi/mibank.c	2012-01-04 12:37:42.251184747 -0700
-@@ -772,7 +772,7 @@
-         }
-         else
-         {
--            REGION_INIT(pScreen, &rgnDst, &fastBox, 1);
-+            REGION_INIT2(pScreen, &rgnDst, &fastBox, 1);
-             REGION_INTERSECT(pScreen, &rgnDst, &rgnDst, prgnSrcClip);
-             pBox = REGION_RECTS(&rgnDst);
-             nBox = REGION_NUM_RECTS(&rgnDst);
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch
deleted file mode 100644
index 896c033..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/extra-kmodes.patch
+++ /dev/null
@@ -1,87 +0,0 @@ 
-Add some extra video modes and change the default to VGA.
-
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
----
- hw/kdrive/src/kmode.c |   41 +++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 39 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	2008-01-11 14:20:47.000000000 +0000
-+++ xorg-server-1.3.0.0/hw/kdrive/src/kmode.c	2008-01-11 14:21:18.000000000 +0000
-@@ -32,6 +32,31 @@ const KdMonitorTiming  kdMonitorTimings[
-     /*	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"
-@@ -41,6 +66,11 @@ const KdMonitorTiming  kdMonitorTimings[
- 	            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 */
-@@ -76,10 +106,19 @@ 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 */
-     },
-+
-+
-+  {   480,    640,    60,     0,                      /* VESA */
-+               0,      0,     0,    KdSyncNegative, /* 31.469 */
-+               0,      0,     0,     KdSyncNegative, /* 59.940 */
-+   },
-+  
-     
-     /* 800x600 modes */
-     {	800,	600,	85,	56250,			    /* VESA */
-@@ -90,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/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch
deleted file mode 100644
index 06761c9..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fbdev_xrandr_ioctl.patch
+++ /dev/null
@@ -1,65 +0,0 @@ 
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
-Index: xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c
-===================================================================
---- xorg-server-1.3.0.0.orig/hw/kdrive/fbdev/fbdev.c	2008-09-25 21:55:12.000000000 +0100
-+++ xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c	2008-09-25 21:55:46.000000000 +0100
-@@ -498,6 +498,7 @@
-     KdScreenInfo	*screen = pScreenPriv->screen;
-     FbdevScrPriv	*scrpriv = screen->driver;
-     Bool		wasEnabled = pScreenPriv->enabled;
-+    FbdevPriv		*priv = screen->card->driver;
-     FbdevScrPriv	oldscr;
-     int			oldwidth;
-     int			oldheight;
-@@ -525,11 +526,46 @@
-     oldheight = screen->height;
-     oldmmwidth = pScreen->mmWidth;
-     oldmmheight = pScreen->mmHeight;
--    
-+
-     /*
-      * Set new configuration
-      */
--    
-+
-+    if (newwidth != oldwidth || newheight != oldheight)
-+    {
-+	struct fb_var_screeninfo var;
-+	int k;
-+
-+	k = ioctl (priv->fd, FBIOGET_VSCREENINFO, &var);
-+
-+	if (k < 0)
-+	{
-+	    ErrorF("Error with framebuffer ioctl FBIOGET_VSCREENINFO: %s", strerror (errno));
-+	    return FALSE;
-+	}
-+
-+	var.xres = newwidth;
-+	var.yres = newheight;
-+	var.activate = FB_ACTIVATE_NOW;
-+
-+	k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &var);
-+
-+	if (k >= 0)
-+	{
-+	    if ((k=ioctl(priv->fd, FBIOGET_FSCREENINFO, &priv->fix)) < 0)
-+	    {
-+		perror("Error with framebuffer ioctl FIOGET_FSCREENINFO");
-+		close (priv->fd);
-+		return FALSE;
-+	    }
-+	    if ((k=ioctl(priv->fd, FBIOGET_VSCREENINFO, &priv->var)) < 0) {
-+		perror("Error  framebuffer ioctl FIOGET_VSCREENINFO");
-+		close (priv->fd);
-+		return FALSE;
-+	    }
-+	}
-+    }
-+
-     scrpriv->randr = KdAddRotation (screen->randr, randr);
- 
-     KdOffscreenSwapOut (screen->pScreen);
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-bogus-stack-variables.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-bogus-stack-variables.patch
deleted file mode 100644
index b4e293f..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-bogus-stack-variables.patch
+++ /dev/null
@@ -1,233 +0,0 @@ 
-From 6dae7f3792611aace1df0cca63bf50c50d93de43 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Tue, 10 Aug 2010 18:30:20 +0000
-Subject: xace: Invalid reference to out-of-scope data.
-
-The callback data passed by reference to the hook was allocated on stack
-within the scope of the case statement. The compiler is free to reuse
-any of that stack space whilst making the function call so we may end up
-passing garbage into the callback.
-
-References:
-
-  Bug 18451 - Xorg server 1.5.2 SEGV during XFixesGetCursorImage()
-  https://bugs.freedesktop.org/show_bug.cgi?id=18451
-
-v2: Drop the unrelated hunk that snuck in when ammending the commit
-message.
-
-Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-Signed-off-by: Keith Packard <keithp@keithp.com>
-
-Upstream-Status: accepted
----
-(limited to 'Xext/xace.c')
-
-diff --git a/Xext/xace.c b/Xext/xace.c
-index e10d837..c757cad 100644
---- a/Xext/xace.c
-+++ b/Xext/xace.c
-@@ -87,7 +87,18 @@ void XaceHookAuditEnd(ClientPtr ptr, int result)
-  */
- int XaceHook(int hook, ...)
- {
--    pointer calldata;	/* data passed to callback */
-+    union {
-+	XaceResourceAccessRec res;
-+	XaceDeviceAccessRec dev;
-+	XaceSendAccessRec send;
-+	XaceReceiveAccessRec recv;
-+	XaceClientAccessRec client;
-+	XaceExtAccessRec ext;
-+	XaceServerAccessRec server;
-+	XaceScreenAccessRec screen;
-+	XaceAuthAvailRec auth;
-+	XaceKeyAvailRec key;
-+    } u;
-     int *prv = NULL;	/* points to return value from callback */
-     va_list ap;		/* argument list */
-     va_start(ap, hook);
-@@ -99,117 +110,86 @@ int XaceHook(int hook, ...)
-      */
-     switch (hook)
-     {
--	case XACE_RESOURCE_ACCESS: {
--	    XaceResourceAccessRec rec;
--	    rec.client = va_arg(ap, ClientPtr);
--	    rec.id = va_arg(ap, XID);
--	    rec.rtype = va_arg(ap, RESTYPE);
--	    rec.res = va_arg(ap, pointer);
--	    rec.ptype = va_arg(ap, RESTYPE);
--	    rec.parent = va_arg(ap, pointer);
--	    rec.access_mode = va_arg(ap, Mask);
--	    rec.status = Success; /* default allow */
--	    calldata = &rec;
--	    prv = &rec.status;
-+	case XACE_RESOURCE_ACCESS:
-+	    u.res.client = va_arg(ap, ClientPtr);
-+	    u.res.id = va_arg(ap, XID);
-+	    u.res.rtype = va_arg(ap, RESTYPE);
-+	    u.res.res = va_arg(ap, pointer);
-+	    u.res.ptype = va_arg(ap, RESTYPE);
-+	    u.res.parent = va_arg(ap, pointer);
-+	    u.res.access_mode = va_arg(ap, Mask);
-+	    u.res.status = Success; /* default allow */
-+	    prv = &u.res.status;
- 	    break;
--	}
--	case XACE_DEVICE_ACCESS: {
--	    XaceDeviceAccessRec rec;
--	    rec.client = va_arg(ap, ClientPtr);
--	    rec.dev = va_arg(ap, DeviceIntPtr);
--	    rec.access_mode = va_arg(ap, Mask);
--	    rec.status = Success; /* default allow */
--	    calldata = &rec;
--	    prv = &rec.status;
-+	case XACE_DEVICE_ACCESS:
-+	    u.dev.client = va_arg(ap, ClientPtr);
-+	    u.dev.dev = va_arg(ap, DeviceIntPtr);
-+	    u.dev.access_mode = va_arg(ap, Mask);
-+	    u.dev.status = Success; /* default allow */
-+	    prv = &u.dev.status;
- 	    break;
--	}
--	case XACE_SEND_ACCESS: {
--	    XaceSendAccessRec rec;
--	    rec.client = va_arg(ap, ClientPtr);
--	    rec.dev = va_arg(ap, DeviceIntPtr);
--	    rec.pWin = va_arg(ap, WindowPtr);
--	    rec.events = va_arg(ap, xEventPtr);
--	    rec.count = va_arg(ap, int);
--	    rec.status = Success; /* default allow */
--	    calldata = &rec;
--	    prv = &rec.status;
-+	case XACE_SEND_ACCESS:
-+	    u.send.client = va_arg(ap, ClientPtr);
-+	    u.send.dev = va_arg(ap, DeviceIntPtr);
-+	    u.send.pWin = va_arg(ap, WindowPtr);
-+	    u.send.events = va_arg(ap, xEventPtr);
-+	    u.send.count = va_arg(ap, int);
-+	    u.send.status = Success; /* default allow */
-+	    prv = &u.send.status;
- 	    break;
--	}
--	case XACE_RECEIVE_ACCESS: {
--	    XaceReceiveAccessRec rec;
--	    rec.client = va_arg(ap, ClientPtr);
--	    rec.pWin = va_arg(ap, WindowPtr);
--	    rec.events = va_arg(ap, xEventPtr);
--	    rec.count = va_arg(ap, int);
--	    rec.status = Success; /* default allow */
--	    calldata = &rec;
--	    prv = &rec.status;
-+	case XACE_RECEIVE_ACCESS:
-+	    u.recv.client = va_arg(ap, ClientPtr);
-+	    u.recv.pWin = va_arg(ap, WindowPtr);
-+	    u.recv.events = va_arg(ap, xEventPtr);
-+	    u.recv.count = va_arg(ap, int);
-+	    u.recv.status = Success; /* default allow */
-+	    prv = &u.recv.status;
- 	    break;
--	}
--	case XACE_CLIENT_ACCESS: {
--	    XaceClientAccessRec rec;
--	    rec.client = va_arg(ap, ClientPtr);
--	    rec.target = va_arg(ap, ClientPtr);
--	    rec.access_mode = va_arg(ap, Mask);
--	    rec.status = Success; /* default allow */
--	    calldata = &rec;
--	    prv = &rec.status;
-+	case XACE_CLIENT_ACCESS:
-+	    u.client.client = va_arg(ap, ClientPtr);
-+	    u.client.target = va_arg(ap, ClientPtr);
-+	    u.client.access_mode = va_arg(ap, Mask);
-+	    u.client.status = Success; /* default allow */
-+	    prv = &u.client.status;
- 	    break;
--	}
--	case XACE_EXT_ACCESS: {
--	    XaceExtAccessRec rec;
--	    rec.client = va_arg(ap, ClientPtr);
--	    rec.ext = va_arg(ap, ExtensionEntry*);
--	    rec.access_mode = DixGetAttrAccess;
--	    rec.status = Success; /* default allow */
--	    calldata = &rec;
--	    prv = &rec.status;
-+	case XACE_EXT_ACCESS:
-+	    u.ext.client = va_arg(ap, ClientPtr);
-+	    u.ext.ext = va_arg(ap, ExtensionEntry*);
-+	    u.ext.access_mode = DixGetAttrAccess;
-+	    u.ext.status = Success; /* default allow */
-+	    prv = &u.ext.status;
- 	    break;
--	}
--	case XACE_SERVER_ACCESS: {
--	    XaceServerAccessRec rec;
--	    rec.client = va_arg(ap, ClientPtr);
--	    rec.access_mode = va_arg(ap, Mask);
--	    rec.status = Success; /* default allow */
--	    calldata = &rec;
--	    prv = &rec.status;
-+	case XACE_SERVER_ACCESS:
-+	    u.server.client = va_arg(ap, ClientPtr);
-+	    u.server.access_mode = va_arg(ap, Mask);
-+	    u.server.status = Success; /* default allow */
-+	    prv = &u.server.status;
- 	    break;
--	}
- 	case XACE_SCREEN_ACCESS:
--	case XACE_SCREENSAVER_ACCESS: {
--	    XaceScreenAccessRec rec;
--	    rec.client = va_arg(ap, ClientPtr);
--	    rec.screen = va_arg(ap, ScreenPtr);
--	    rec.access_mode = va_arg(ap, Mask);
--	    rec.status = Success; /* default allow */
--	    calldata = &rec;
--	    prv = &rec.status;
-+	case XACE_SCREENSAVER_ACCESS:
-+	    u.screen.client = va_arg(ap, ClientPtr);
-+	    u.screen.screen = va_arg(ap, ScreenPtr);
-+	    u.screen.access_mode = va_arg(ap, Mask);
-+	    u.screen.status = Success; /* default allow */
-+	    prv = &u.screen.status;
- 	    break;
--	}
--	case XACE_AUTH_AVAIL: {
--	    XaceAuthAvailRec rec;
--	    rec.client = va_arg(ap, ClientPtr);
--	    rec.authId = va_arg(ap, XID);
--	    calldata = &rec;
-+	case XACE_AUTH_AVAIL:
-+	    u.auth.client = va_arg(ap, ClientPtr);
-+	    u.auth.authId = va_arg(ap, XID);
- 	    break;
--	}
--	case XACE_KEY_AVAIL: {
--	    XaceKeyAvailRec rec;
--	    rec.event = va_arg(ap, xEventPtr);
--	    rec.keybd = va_arg(ap, DeviceIntPtr);
--	    rec.count = va_arg(ap, int);
--	    calldata = &rec;
-+	case XACE_KEY_AVAIL:
-+	    u.key.event = va_arg(ap, xEventPtr);
-+	    u.key.keybd = va_arg(ap, DeviceIntPtr);
-+	    u.key.count = va_arg(ap, int);
- 	    break;
--	}
--	default: {
-+	default:
- 	    va_end(ap);
- 	    return 0;	/* unimplemented hook number */
--	}
-     }
-     va_end(ap);
-  
-     /* call callbacks and return result, if any. */
--    CallCallbacks(&XaceHooks[hook], calldata);
-+    CallCallbacks(&XaceHooks[hook], &u);
-     return prv ? *prv : Success;
- }
- 
---
-cgit v0.9.0.2-2-gbebe
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch
deleted file mode 100644
index 7aa487a..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-newer-xorg-headers.patch
+++ /dev/null
@@ -1,22 +0,0 @@ 
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
----
- render/glyphstr.h |    1 +
- 1 file changed, 1 insertion(+)
-
---- xorg-server-1.3.0.0.orig/render/glyphstr.h
-+++ xorg-server-1.3.0.0/render/glyphstr.h
-@@ -23,10 +23,11 @@
-  */
- 
- #ifndef _GLYPHSTR_H_
- #define _GLYPHSTR_H_
- 
-+#include <X11/X.h>
- #include <X11/extensions/renderproto.h>
- #include "picture.h"
- #include "screenint.h"
- #include "regionstr.h"
- #include "miscstruct.h"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch
deleted file mode 100644
index b946bb5..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/hide-cursor-and-ppm-root.patch
+++ /dev/null
@@ -1,312 +0,0 @@ 
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
-Index: xorg-server-1.7.99.2/dix/window.c
-===================================================================
---- xorg-server-1.7.99.2.orig/dix/window.c	2009-11-04 16:25:50.000000000 +0000
-+++ xorg-server-1.7.99.2/dix/window.c	2010-02-10 17:42:22.719078216 +0000
-@@ -179,6 +179,8 @@
- 
- #define SubStrSend(pWin,pParent) (StrSend(pWin) || SubSend(pParent))
- 
-+char* RootPPM = NULL;
-+
- #ifdef DEBUG
- /******
-  * PrintWindowTree
-@@ -304,6 +306,115 @@
- #endif
- }
- 
-+static int
-+get_int(FILE *fp)
-+{
-+  int c = 0;
-+
-+  while ((c = getc(fp)) != EOF)
-+    {
-+      if (isspace(c))
-+	continue;
-+
-+      if (c == '#')
-+	while (c = getc(fp))
-+	  if (c == EOF)
-+	    return 0;
-+	  else if (c == '\n')
-+	    break;
-+
-+      if (isdigit(c)) 
-+	{
-+	  int val = c - '0';
-+	  while ((c = getc(fp)) && isdigit(c))
-+	    val = (val * 10) + (c - '0');
-+	  return val;
-+	}
-+    }
-+
-+  return 0;
-+}
-+
-+static unsigned char*
-+ppm_load (const char* path, int depth, int *width, int *height)
-+{
-+  FILE *fp;
-+  int   max, n = 0, w, h, i, j, bytes_per_line;
-+  unsigned char *data, *res, h1, h2;
-+
-+  if (depth < 16 || depth > 32)
-+    return NULL;
-+
-+  if (depth > 16)
-+    depth = 32;
-+
-+  fp = fopen (path, "r");
-+  if (fp == NULL)
-+    return FALSE;
-+
-+  h1 = getc(fp);
-+  h2 = getc(fp);
-+
-+  /* magic is 'P6' for raw ppm */
-+  if (h1 != 'P' && h2 != '6')
-+      goto fail;
-+
-+  w = get_int(fp);
-+  h = get_int(fp);
-+
-+  if (w == 0 || h == 0)
-+    goto fail;
-+
-+  max = get_int(fp);
-+
-+  if (max != 255)
-+      goto fail;
-+
-+  bytes_per_line = ((w * depth + 31) >> 5) << 2;
-+
-+  res = data = malloc(bytes_per_line * h);
-+
-+  for (i=0; i<h; i++)
-+    {
-+      for (j=0; j<w; j++)
-+	{
-+	  unsigned char buf[3];
-+	  fread(buf, 1, 3, fp);
-+	  
-+	  switch (depth)
-+	    {
-+	    case 24:
-+	    case 32:
-+	      *data     = buf[2];
-+	      *(data+1) = buf[1];
-+	      *(data+2) = buf[0];
-+	      data += 4;
-+	      break;
-+	    case 16:
-+	    default:
-+	      *(unsigned short*)data
-+		= ((buf[0] >> 3) << 11) | ((buf[1] >> 2) << 5) | (buf[2] >> 3);
-+	      data += 2;
-+	      break;
-+	    }
-+	}
-+      data += (bytes_per_line - (w*(depth>>3)));
-+    }
-+
-+  data = res;
-+
-+  *width  = w;
-+  *height = h;
-+
-+  fclose(fp);
-+
-+  return res;
-+
-+ fail:
-+  fclose(fp);
-+  return NULL;
-+}
-+
- static void
- MakeRootTile(WindowPtr pWin)
- {
-@@ -314,6 +425,36 @@
-     unsigned char *from, *to;
-     int i, j;
- 
-+    if (RootPPM != NULL)
-+      {
-+	int            w, h;
-+	unsigned char *data;
-+
-+	if ((data = ppm_load (RootPPM, pScreen->rootDepth, &w, &h)) != NULL)
-+	  {
-+	    pWin->background.pixmap 
-+	      = (*pScreen->CreatePixmap)(pScreen, w, h, pScreen->rootDepth, 0);
-+
-+	    pWin->backgroundState = BackgroundPixmap;
-+	    pGC = GetScratchGC(pScreen->rootDepth, pScreen);
-+	    if (!pWin->background.pixmap || !pGC)
-+	      FatalError("could not create root tile");
-+
-+	    ValidateGC((DrawablePtr)pWin->background.pixmap, pGC);
-+
-+	    (*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap, 
-+				  pGC, 
-+				  pScreen->rootDepth,
-+				  0, 0, w, h, 0, ZPixmap, (char *)data);
-+	    FreeScratchGC(pGC);
-+	    
-+	    free(data);
-+	    return;
-+	  }
-+	else
-+	  ErrorF("Unable to load root window image.");
-+      }
-+
-     pWin->background.pixmap = (*pScreen->CreatePixmap)(pScreen, 4, 4,
- 						    pScreen->rootDepth, 0);
- 
-@@ -530,6 +671,7 @@
- }
- 
- 
-+
- WindowPtr
- RealChildHead(WindowPtr pWin)
- {
-Index: xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c
-===================================================================
---- xorg-server-1.7.99.2.orig/hw/kdrive/src/kdrive.c	2010-02-10 17:36:36.000000000 +0000
-+++ xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c	2010-02-10 17:43:07.797828099 +0000
-@@ -60,6 +60,9 @@
-     { 32, 32 }
- };
- 
-+int 
-+ProcXFixesHideCursor (ClientPtr client) ;
-+
- #define NUM_KD_DEPTHS (sizeof (kdDepths) / sizeof (kdDepths[0]))
- 
- #define KD_DEFAULT_BUTTONS 5
-@@ -92,6 +95,9 @@
- 
- KdOsFuncs	*kdOsFuncs;
- 
-+extern Bool CursorInitiallyHidden; /* See Xfixes cursor.c */
-+extern char* RootPPM;		   /* dix/window.c */
-+
- void
- KdSetRootClip (ScreenPtr pScreen, BOOL enable)
- {
-@@ -275,6 +281,7 @@
-     KdSetRootClip (pScreen, TRUE);
-     if (pScreenPriv->card->cfuncs->dpms)
- 	(*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState);
-+
-     return TRUE;
- }
- 
-@@ -553,6 +560,8 @@
-     ErrorF("-switchCmd       Command to execute on vt switch\n");
-     ErrorF("-zap             Terminate server on Ctrl+Alt+Backspace\n");
-     ErrorF("vtxx             Use virtual terminal xx instead of the next available\n");
-+    ErrorF("-hide-cursor     Start with cursor hidden\n");
-+    ErrorF("-root-ppm [path] Specify ppm file to use as root window background.\n");
- }
- 
- int
-@@ -616,6 +625,19 @@
- 	kdSoftCursor = TRUE;
- 	return 1;
-     }
-+    if (!strcmp (argv[i], "-hide-cursor"))
-+    {
-+      CursorInitiallyHidden = TRUE;
-+      return 1;
-+    }
-+    if (!strcmp (argv[i], "-root-ppm"))
-+    {
-+      if ((i+1) < argc)
-+	RootPPM =  argv[i+1];
-+      else
-+	UseMsg ();
-+      return 2;
-+    }
-     if (!strcmp (argv[i], "-videoTest"))
-     {
- 	kdVideoTest = TRUE;
-Index: xorg-server-1.7.99.2/xfixes/cursor.c
-===================================================================
---- xorg-server-1.7.99.2.orig/xfixes/cursor.c	2009-12-19 01:43:53.000000000 +0000
-+++ xorg-server-1.7.99.2/xfixes/cursor.c	2010-02-10 17:45:02.089079491 +0000
-@@ -57,6 +57,7 @@
- static RESTYPE		CursorClientType;
- static RESTYPE		CursorHideCountType;
- static RESTYPE		CursorWindowType;
-+static Bool             CursorGloballyHidden; 
- static CursorPtr	CursorCurrent[MAXDEVICES];
- static CursorPtr        pInvisibleCursor = NULL;
- 
-@@ -65,6 +66,8 @@
- 
- static void deleteCursorHideCountsForScreen (ScreenPtr pScreen);
- 
-+Bool CursorInitiallyHidden = FALSE;
-+
- #define VERIFY_CURSOR(pCursor, cursor, client, access)			\
-     do {								\
- 	int err;							\
-@@ -150,7 +153,7 @@
-     if (ConnectionInfo)
- 	CursorVisible = EnableCursor;
- 
--    if (cs->pCursorHideCounts != NULL || !CursorVisible) {
-+    if (cs->pCursorHideCounts != NULL || !CursorVisible || CursorGloballyHidden) {
-         ret = ((*pScreen->RealizeCursor)(pDev, pScreen, pInvisibleCursor) &&
- 	       (*pScreen->DisplayCursor) (pDev, pScreen, pInvisibleCursor));
-     } else {
-@@ -887,6 +890,12 @@
- 	return (ret == BadValue) ? BadWindow : ret;
-     }
- 
-+    /* Is cursor set to be initially hidden ?, if so reset this 
-+     * flag as now visibility assumed under control of client.
-+    */
-+    if (CursorGloballyHidden)
-+      CursorGloballyHidden = FALSE;
-+
-     /* 
-      * Has client hidden the cursor before on this screen? 
-      * If so, just increment the count. 
-@@ -950,9 +959,19 @@
- 	return (rc == BadValue) ? BadWindow : rc;
-     }
- 
-+    /* X was started with cursor hidden, therefore just reset our flag
-+     * (returning to normal client control) and cause cursor to now be
-+     * shown.
-+    */
-+    if (CursorGloballyHidden == TRUE)
-+      {
-+	CursorGloballyHidden = FALSE;
-+	return (client->noClientException);
-+      }
-+
-     /* 
-      * Has client hidden the cursor on this screen?
--     * If not, generate an error.
-+     * If so, generate an error.
-      */
-     pChc = findCursorHideCount(client, pWin->drawable.pScreen);
-     if (pChc == NULL) {
-@@ -1068,6 +1087,8 @@
- {
-     int	i;
- 
-+    CursorGloballyHidden = CursorInitiallyHidden;
-+
-     if (party_like_its_1989)
- 	CursorVisible = EnableCursor;
-     
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-evdev.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-evdev.patch
deleted file mode 100644
index 5d876af..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-evdev.patch
+++ /dev/null
@@ -1,520 +0,0 @@ 
-# Kdrive evdev support patch, posted by Ander Conselvan de Oliveira at
-# http://lists.freedesktop.org/archives/xorg/2005-December/011635.html
-
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
-diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/linux/evdev.c xserver/hw/kdrive/linux/evdev.c
---- xserver.original/hw/kdrive/linux/evdev.c	2005-12-16 10:36:05.000000000 -0200
-+++ xserver/hw/kdrive/linux/evdev.c	2005-12-16 10:40:51.077410192 -0200
-@@ -31,9 +31,11 @@
- #include <X11/X.h>
- #include <X11/Xproto.h>
- #include <X11/Xpoll.h>
-+#include <X11/keysym.h>
- #include "inputstr.h"
- #include "scrnintstr.h"
- #include "kdrive.h"
-+#include "kkeymap.h"
- 
- #define NUM_EVENTS  128
- #define ABS_UNSET   -65535
-@@ -105,9 +107,10 @@
- {
-     KdMouseInfo		*mi = closure;
-     Kevdev		*ke = mi->driver;
--    int			i;
-+    int			i, j;
-     struct input_event	events[NUM_EVENTS];
-     int			n;
-+    int                 flags;
- 
-     n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
-     if (n <= 0)
-@@ -115,22 +118,64 @@
-     n /= sizeof (struct input_event);
-     for (i = 0; i < n; i++)
-     {
-+	flags = KD_MOUSE_DELTA | kdMouseInfo->buttonState;
- 	switch (events[i].type) {
- 	case EV_SYN:
- 	    break;
- 	case EV_KEY:
--	    EvdevMotion (mi);
--	    ASSIGNBIT(ke->key,events[i].code, events[i].value);
--	    if (events[i].code < 0x100)
--		ErrorF ("key %d %d\n", events[i].code, events[i].value);
--	    else
--		ErrorF ("key 0x%x %d\n", events[i].code, events[i].value);
-+	  if (events[i].code >= BTN_MOUSE && events[i].code < BTN_JOYSTICK) {
-+	        switch (events[i].code) {
-+		case BTN_LEFT:
-+		  if (events[i].value == 1)
-+		    flags |= KD_BUTTON_1;
-+		  else
-+		    flags &= ~KD_BUTTON_1;
-+		  break;
-+		case BTN_MIDDLE:
-+		  if (events[i].value == 1)
-+		    flags |= KD_BUTTON_2;
-+		  else
-+		    flags &= ~KD_BUTTON_2;
-+		  break;
-+		case BTN_RIGHT:
-+		  if (events[i].value == 1)
-+		    flags |= KD_BUTTON_3;
-+		  else
-+		    flags &= ~KD_BUTTON_3;
-+		  break;
-+		default:
-+		  /* Unknow button */
-+		  break;
-+       	        }
-+		KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
-+	    }
- 	    break;
- 	case EV_REL:
--	    ke->rel[events[i].code] += events[i].value;
-+	    if (events[i].code == REL_X) {
-+	      KdEnqueueMouseEvent (kdMouseInfo, flags, events[i].value, 0);
-+	    }
-+	    else if (events[i].code == REL_Y) {
-+	      KdEnqueueMouseEvent (kdMouseInfo, flags, 0, events[i].value);
-+	    }
-+	    else if (events[i].code == REL_WHEEL) {	      
-+	      for (j = 0; j < abs (events[i].value); j++) {
-+		if (events[i].value > 0)
-+		  flags |= KD_BUTTON_4;
-+		else
-+		  flags |= KD_BUTTON_5;
-+
-+		KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
-+
-+		if (events[i].value > 0)
-+		  flags &= ~KD_BUTTON_4;
-+		else
-+		  flags &= ~KD_BUTTON_5;
-+
-+		KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
-+	      } /* events[i].code == REL_WHEEL */
-+	    }
- 	    break;
- 	case EV_ABS:
--	    ke->abs[events[i].code] = events[i].value;
- 	    break;
- 	}
-     }
-@@ -173,6 +218,12 @@
- 		fd = open (kdefaultEvdev[i], 2);
- 		if (fd >= 0)
- 		{
-+                    if (ioctl (fd, EVIOCGRAB, 1) < 0)
-+                    {
-+                        close (fd);
-+                        continue;
-+                    }
-+
- 		    mi->name = KdSaveString (kdefaultEvdev[i]);
- 		    break;
- 		}
-@@ -287,7 +338,319 @@
-     EvdevFini,
- };
- 
--#if 0
-+/* Keyboard */
-+
-+int kbd_fd = -1;
-+int EvdevInputType = 0;
-+
-+KeySym evdevKeymap[(194 - 1 + 1) * 2] = {
-+/* These are directly mapped from DOS scanset 0 */
-+/*      1     8 */       XK_Escape, NoSymbol,
-+/*      2     9 */       XK_1,  XK_exclam,
-+/*      3    10 */       XK_2,  XK_at,
-+/*      4    11 */       XK_3,  XK_numbersign,
-+/*      5    12 */       XK_4,  XK_dollar,
-+/*      6    13 */       XK_5,  XK_percent,
-+/*      7    14 */       XK_6,  XK_asciicircum,
-+/*      8    15 */       XK_7,  XK_ampersand,
-+/*      9    16 */       XK_8,  XK_asterisk,
-+/*     10    17 */       XK_9,  XK_parenleft,
-+/*     11    18 */       XK_0,  XK_parenright,
-+/*     12    19 */       XK_minus,      XK_underscore,
-+/*     13    20 */       XK_equal,      XK_plus,
-+/*     14    21 */       XK_BackSpace,  NoSymbol,
-+/*     15    22 */       XK_Tab,        NoSymbol,
-+/*     16    23 */       XK_Q,  NoSymbol,
-+/*     17    24 */       XK_W,  NoSymbol,
-+/*     18    25 */       XK_E,  NoSymbol,
-+/*     19    26 */       XK_R,  NoSymbol,
-+/*     20    27 */       XK_T,  NoSymbol,
-+/*     21    28 */       XK_Y,  NoSymbol,
-+/*     22    29 */       XK_U,  NoSymbol,
-+/*     23    30 */       XK_I,  NoSymbol,
-+/*     24    31 */       XK_O,  NoSymbol,
-+/*     25    32 */       XK_P,  NoSymbol,
-+/*     26    33 */       XK_bracketleft,        XK_braceleft,
-+/*     27    34 */       XK_bracketright,       XK_braceright,
-+/*     28    35 */       XK_Return,     NoSymbol,
-+/*     29    36 */       XK_Control_L,  NoSymbol,
-+/*     30    37 */       XK_A,  NoSymbol,
-+/*     31    38 */       XK_S,  NoSymbol,
-+/*     32    39 */       XK_D,  NoSymbol,
-+/*     33    40 */       XK_F,  NoSymbol,
-+/*     34    41 */       XK_G,  NoSymbol,
-+/*     35    42 */       XK_H,  NoSymbol,
-+/*     36    43 */       XK_J,  NoSymbol,
-+/*     37    44 */       XK_K,  NoSymbol,
-+/*     38    45 */       XK_L,  NoSymbol,
-+/*     39    46 */       XK_semicolon,  XK_colon,
-+/*     40    47 */       XK_apostrophe, XK_quotedbl,
-+/*     41    48 */       XK_grave,      XK_asciitilde,
-+/*     42    49 */       XK_Shift_L,    NoSymbol,
-+/*     43    50 */       XK_backslash,  XK_bar,
-+/*     44    51 */       XK_Z,  NoSymbol,
-+/*     45    52 */       XK_X,  NoSymbol,
-+/*     46    53 */       XK_C,  NoSymbol,
-+/*     47    54 */       XK_V,  NoSymbol,
-+/*     48    55 */       XK_B,  NoSymbol,
-+/*     49    56 */       XK_N,  NoSymbol,
-+/*     50    57 */       XK_M,  NoSymbol,
-+/*     51    58 */       XK_comma,      XK_less,
-+/*     52    59 */       XK_period,     XK_greater,
-+/*     53    60 */       XK_slash,      XK_question,
-+/*     54    61 */       XK_Shift_R,    NoSymbol,
-+/*     55    62 */       XK_KP_Multiply,        NoSymbol,
-+/*     56    63 */       XK_Alt_L,      XK_Meta_L,
-+/*     57    64 */       XK_space,      NoSymbol,
-+/*     58    65 */       XK_Caps_Lock,  NoSymbol,
-+/*     59    66 */       XK_F1, NoSymbol,
-+/*     60    67 */       XK_F2, NoSymbol,
-+/*     61    68 */       XK_F3, NoSymbol,
-+/*     62    69 */       XK_F4, NoSymbol,
-+/*     63    70 */       XK_F5, NoSymbol,
-+/*     64    71 */       XK_F6, NoSymbol,
-+/*     65    72 */       XK_F7, NoSymbol,
-+/*     66    73 */       XK_F8, NoSymbol,
-+/*     67    74 */       XK_F9, NoSymbol,
-+/*     68    75 */       XK_F10,        NoSymbol,
-+/*     69    76 */       XK_Break,      XK_Pause,
-+/*     70    77 */       XK_Scroll_Lock,        NoSymbol,
-+/*     71    78 */       XK_KP_Home,    XK_KP_7,
-+/*     72    79 */       XK_KP_Up,      XK_KP_8,
-+/*     73    80 */       XK_KP_Page_Up, XK_KP_9,
-+/*     74    81 */       XK_KP_Subtract,        NoSymbol,
-+/*     75    82 */       XK_KP_Left,    XK_KP_4,
-+/*     76    83 */       XK_KP_5,       NoSymbol,
-+/*     77    84 */       XK_KP_Right,   XK_KP_6,
-+/*     78    85 */       XK_KP_Add,     NoSymbol,
-+/*     79    86 */       XK_KP_End,     XK_KP_1,
-+/*     80    87 */       XK_KP_Down,    XK_KP_2,
-+/*     81    88 */       XK_KP_Page_Down,       XK_KP_3,
-+/*     82    89 */       XK_KP_Insert,  XK_KP_0,
-+/*     83    90 */       XK_KP_Delete,  XK_KP_Decimal,
-+/*     84    91 */     NoSymbol,        NoSymbol,
-+/*     85    92 */     NoSymbol,        NoSymbol,
-+/*     86    93 */     NoSymbol,        NoSymbol,
-+/*     87    94 */       XK_F11,        NoSymbol,
-+/*     88    95 */       XK_F12,        NoSymbol,
-+
-+/* These are remapped from the extended set (using ExtendMap) */
-+
-+/*     89    96 */       XK_Control_R,  NoSymbol,
-+/*     90    97 */       XK_KP_Enter,   NoSymbol,
-+/*     91    98 */       XK_KP_Divide,  NoSymbol,
-+/*     92    99 */       XK_Sys_Req,    XK_Print,
-+/*     93   100 */       XK_Alt_R,      XK_Meta_R,
-+/*     94   101 */       XK_Num_Lock,   NoSymbol,
-+/*     95   102 */       XK_Home,       NoSymbol,
-+/*     96   103 */       XK_Up,         NoSymbol,
-+/*     97   104 */       XK_Page_Up,    NoSymbol,
-+/*     98   105 */       XK_Left,       NoSymbol,
-+/*     99   106 */       XK_Right,      NoSymbol,
-+/*    100   107 */       XK_End,        NoSymbol,
-+/*    101   108 */       XK_Down,       NoSymbol,
-+/*    102   109 */       XK_Page_Down,  NoSymbol,
-+/*    103   110 */       XK_Insert,     NoSymbol,
-+/*    104   111 */       XK_Delete,     NoSymbol,
-+/*    105   112 */       XK_Super_L,    NoSymbol,
-+/*    106   113 */       XK_Super_R,    NoSymbol,
-+/*    107   114 */       XK_Menu,       NoSymbol,
-+/*    108   115 */       NoSymbol,      NoSymbol,
-+/*    109   116 */       NoSymbol,      NoSymbol,
-+/*    110   117 */       NoSymbol,      NoSymbol,
-+/*    111   118 */       NoSymbol,      NoSymbol,
-+/*    112   119 */       NoSymbol,      NoSymbol,
-+
-+/*    113   120 */      NoSymbol,     NoSymbol,
-+/*    114   121 */      NoSymbol,     NoSymbol,
-+/*    115   122 */      NoSymbol,     NoSymbol,
-+/*    116   123 */      NoSymbol,     NoSymbol,
-+/*    117   124 */      NoSymbol,     NoSymbol,
-+/*    118   125 */      NoSymbol,     NoSymbol,
-+/*    119   126 */      NoSymbol,     NoSymbol,
-+/*    120   127 */      NoSymbol,     NoSymbol,
-+/*    121   128 */      NoSymbol,     NoSymbol,
-+/*    122   129 */      NoSymbol,     NoSymbol,
-+/*    123   130 */      NoSymbol,     NoSymbol,
-+/*    124   131 */      NoSymbol,     NoSymbol,
-+/*    125   132 */      NoSymbol,     NoSymbol,
-+/*    126   133 */      NoSymbol,     NoSymbol,
-+/*    127   134 */      NoSymbol,     NoSymbol,
-+/*    128   135 */      NoSymbol,     NoSymbol,
-+/*    129   136 */      NoSymbol,     NoSymbol,
-+/*    130   137 */      NoSymbol,     NoSymbol,
-+/*    131   138 */      NoSymbol,     NoSymbol,
-+/*    132   139 */      NoSymbol,     NoSymbol,
-+/*    133   140 */      NoSymbol,     NoSymbol,
-+/*    134   141 */      NoSymbol,     NoSymbol,
-+/*    135   142 */      NoSymbol,     NoSymbol,
-+/*    136   143 */      NoSymbol,     NoSymbol,
-+/*    137   144 */      NoSymbol,     NoSymbol,
-+/*    138   145 */      NoSymbol,     NoSymbol,
-+/*    139   146 */      NoSymbol,     NoSymbol,
-+/*    140   147 */      NoSymbol,     NoSymbol,
-+/*    141   148 */      NoSymbol,     NoSymbol,
-+/*    142   149 */      NoSymbol,     NoSymbol,
-+/*    143   150 */      NoSymbol,     NoSymbol,
-+/*    144   151 */      NoSymbol,     NoSymbol,
-+/*    145   152 */      NoSymbol,     NoSymbol,
-+/*    146   153 */      NoSymbol,     NoSymbol,
-+/*    147   154 */      NoSymbol,     NoSymbol,
-+/*    148   155 */      NoSymbol,     NoSymbol,
-+/*    149   156 */      NoSymbol,     NoSymbol,
-+/*    150   157 */      NoSymbol,     NoSymbol,
-+/*    151   158 */      NoSymbol,     NoSymbol,
-+/*    152   159 */      NoSymbol,     NoSymbol,
-+/*    153   160 */      NoSymbol,     NoSymbol,
-+/*    154   161 */      NoSymbol,     NoSymbol,
-+/*    155   162 */      NoSymbol,     NoSymbol,
-+/*    156   163 */      NoSymbol,     NoSymbol,
-+/*    157   164 */      NoSymbol,     NoSymbol,
-+/*    158   165 */      NoSymbol,     NoSymbol,
-+/*    159   166 */      NoSymbol,     NoSymbol,
-+/*    160   167 */      NoSymbol,     NoSymbol,
-+/*    161   168 */      NoSymbol,     NoSymbol,
-+/*    162   169 */      NoSymbol,     NoSymbol,
-+/*    163   170 */      NoSymbol,     NoSymbol,
-+/*    164   171 */      NoSymbol,     NoSymbol,
-+/*    165   172 */      NoSymbol,     NoSymbol,
-+/*    166   173 */      NoSymbol,     NoSymbol,
-+/*    167   174 */      NoSymbol,     NoSymbol,
-+/*    168   175 */      NoSymbol,     NoSymbol,
-+/*    169   176 */      NoSymbol,     NoSymbol,
-+/*    170   177 */      NoSymbol,     NoSymbol,
-+/*    171   178 */      NoSymbol,     NoSymbol,
-+/*    172   179 */      NoSymbol,     NoSymbol,
-+/*    173   180 */      NoSymbol,     NoSymbol,
-+/*    174   181 */      NoSymbol,     NoSymbol,
-+/*    175   182 */      NoSymbol,     NoSymbol,
-+/*    176   183 */      NoSymbol,     NoSymbol,
-+/*    177   184 */      NoSymbol,     NoSymbol,
-+/*    178   185 */      NoSymbol,     NoSymbol,
-+/*    179   186 */      NoSymbol,     NoSymbol,
-+/*    180   187 */      NoSymbol,     NoSymbol,
-+/*    181   188 */      NoSymbol,     NoSymbol,
-+/*    182   189 */      NoSymbol,     NoSymbol,
-+/*    183   190 */      NoSymbol,     NoSymbol,
-+/*    184   191 */      NoSymbol,     NoSymbol,
-+/*    185   192 */      NoSymbol,     NoSymbol,
-+/*    186   193 */      NoSymbol,     NoSymbol,
-+/*    187   194 */      NoSymbol,     NoSymbol,
-+/*    188   195 */      NoSymbol,     NoSymbol,
-+/*    189   196 */      NoSymbol,     NoSymbol,
-+/*    190   197 */      NoSymbol,     NoSymbol,
-+/*    191   198 */      NoSymbol,     NoSymbol,
-+/*    192   199 */      NoSymbol,     NoSymbol,
-+/*    193   200 */      NoSymbol,     NoSymbol,
-+/*    194   201 */      NoSymbol,     NoSymbol,
-+};
-+
-+static void
-+EvdevKbdRead (int fd, void *closure)
-+{
-+    int i, n;
-+    struct input_event events[NUM_EVENTS];
-+
-+    n = read (fd, &events, NUM_EVENTS * sizeof (struct input_event));
-+    if (n <= 0)
-+      return;
-+
-+    n /= sizeof (struct input_event);
-+
-+    for (i = 0; i < n; i++)
-+    {
-+        if (events[i].type == EV_KEY)
-+      	    KdEnqueueKeyboardEvent (events[i].code, !events[i].value);
-+    }
-+}
-+
-+static void
-+EvdevKbdLoad (void)
-+{
-+    kdMinScanCode = 0;
-+    kdMaxScanCode = 193;
-+    kdKeymapWidth = 2;
-+    memcpy (kdKeymap, evdevKeymap, sizeof (evdevKeymap));
-+}
-+
-+static int
-+EvdevKbdInit (void)
-+{
-+    int fd, i;
-+
-+    if (!EvdevInputType)
-+        EvdevInputType = KdAllocInputType ();
-+
-+    if (!kdKeyboard)
-+    {
-+        for (i = 0; i < NUM_DEFAULT_EVDEV; i++)
-+        {
-+            fd = open (kdefaultEvdev[i], 2);
-+            if (fd >= 0)
-+            {
-+                kdKeyboard = KdSaveString (kdefaultEvdev[i]);
-+                break;
-+            }
-+	}
-+    }
-+    else
-+    {
-+        fd = open (kdKeyboard, O_RDWR);
-+        if (fd < 0)
-+            return FALSE;
-+    }
-+
-+    if (ioctl (fd, EVIOCGRAB, 1) < 0)
-+    {
-+        close (fd);
-+	return FALSE;
-+    }
-+
-+    if (!KdRegisterFd (EvdevInputType, fd, EvdevKbdRead, NULL))
-+        return FALSE;
-+
-+    kbd_fd = fd;
-+    return TRUE;
-+}
-+
-+static void
-+EvdevKbdFini (void)
-+{
-+}
-+
-+static void
-+EvdevKbdLeds (int leds)
-+{
-+    struct input_event event;
-+
-+    memset(&event, 0, sizeof(event));
-+
-+    event.type = EV_LED;
-+    event.code = LED_CAPSL;
-+    event.value = leds & (1 << 0) ? 1 : 0;
-+    write(kbd_fd, (char *) &event, sizeof(event));
-+
-+    event.type = EV_LED;
-+    event.code = LED_NUML;
-+    event.value = leds & (1 << 1) ? 1 : 0;
-+    write(kbd_fd, (char *) &event, sizeof(event));
-+
-+    event.type = EV_LED;
-+    event.code = LED_SCROLLL;
-+    event.value = leds & (1 << 2) ? 1 : 0;
-+    write(kbd_fd, (char *) &event, sizeof(event));
-+
-+    event.type = EV_LED;
-+    event.code = LED_COMPOSE;
-+    event.value = leds & (1 << 3) ? 1 : 0;
-+    write(kbd_fd, (char *) &event, sizeof(event));
-+}
-+
-+static void
-+EvdevKbdBell (int volume, int frequency, int duration)
-+{
-+}
-+
- KdKeyboardFuncs LinuxEvdevKeyboardFuncs = {
-     EvdevKbdLoad,
-     EvdevKbdInit,
-@@ -296,4 +659,4 @@
-     EvdevKbdFini,
-     0,
- };
--#endif
-+
-diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kdrive.c xserver/hw/kdrive/src/kdrive.c
---- xserver.original/hw/kdrive/src/kdrive.c	2005-12-16 10:36:07.000000000 -0200
-+++ xserver/hw/kdrive/src/kdrive.c	2005-12-16 10:37:09.000000000 -0200
-@@ -73,6 +73,7 @@
- Bool		    kdEnabled;
- int		    kdSubpixelOrder;
- int		    kdVirtualTerminal = -1;
-+char		    *kdKeyboard = 0;
- Bool		    kdSwitchPending;
- char		    *kdSwitchCmd;
- DDXPointRec	    kdOrigin;
-@@ -795,6 +796,14 @@
- 	    UseMsg ();
- 	return 2;
-     }
-+    if (!strcmp (argv[i], "-keyboard"))
-+    {
-+	if ((i+1) < argc)
-+	    kdKeyboard = argv[i+1];
-+	else
-+	    UseMsg ();
-+	return 2;
-+    }
-     if (!strcmp (argv[i], "-rgba"))
-     {
- 	if ((i+1) < argc)
-diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kdrive.h xserver/hw/kdrive/src/kdrive.h
---- xserver.original/hw/kdrive/src/kdrive.h	2005-12-16 10:36:07.000000000 -0200
-+++ xserver/hw/kdrive/src/kdrive.h	2005-12-16 10:37:09.000000000 -0200
-@@ -416,6 +416,7 @@
- extern Bool		kdDisableZaphod;
- extern Bool		kdDontZap;
- extern int		kdVirtualTerminal;
-+extern char		*kdKeyboard;
- extern char		*kdSwitchCmd;
- extern KdOsFuncs	*kdOsFuncs;
- 
-@@ -769,7 +770,7 @@
- ProcessInputEvents (void);
- 
- extern KdMouseFuncs	LinuxMouseFuncs;
--extern KdMouseFuncs	LinuxEvdevFuncs;
-+extern KdMouseFuncs	LinuxEvdevMouseFuncs;
- extern KdMouseFuncs	Ps2MouseFuncs;
- extern KdMouseFuncs	BusMouseFuncs;
- extern KdMouseFuncs	MsMouseFuncs;
-@@ -777,6 +778,7 @@
- extern KdMouseFuncs	TsFuncs;
- #endif
- extern KdKeyboardFuncs	LinuxKeyboardFuncs;
-+extern KdKeyboardFuncs	LinuxEvdevKeyboardFuncs;
- extern KdOsFuncs	LinuxFuncs;
- 
- extern KdMouseFuncs	VxWorksMouseFuncs;
-diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kinput.c xserver/hw/kdrive/src/kinput.c
---- xserver.original/hw/kdrive/src/kinput.c	2005-12-16 10:36:07.000000000 -0200
-+++ xserver/hw/kdrive/src/kinput.c	2005-12-16 10:37:09.000000000 -0200
-@@ -1300,6 +1300,7 @@
- 	    xE.u.u.type = KeyPress;
- 	xE.u.u.detail = key_code;
- 	
-+#ifndef XKB
- 	switch (KEYCOL1(key_code)) 
- 	{
- 	case XK_Num_Lock:
-@@ -1313,6 +1314,7 @@
- 	    else
- 		xE.u.u.type = KeyPress;
- 	}
-+#endif
- 	
- 	/*
- 	 * Check pressed keys which are already down
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch
deleted file mode 100644
index 8a480dc..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/kdrive-use-evdev.patch
+++ /dev/null
@@ -1,58 +0,0 @@ 
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
---- xserver/hw/kdrive/fbdev/fbinit.c~	2006-01-31 17:09:33.000000000 +0100
-+++ xserver/hw/kdrive/fbdev/fbinit.c	2006-01-31 17:11:55.000000000 +0100
-@@ -28,6 +28,8 @@
- #endif
- #include <fbdev.h>
- 
-+extern int use_evdev;
-+
- void
- InitCard (char *name)
- {
-@@ -45,7 +47,10 @@
- void
- InitInput (int argc, char **argv)
- {
--    KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
-+    if (use_evdev)
-+        KdInitInput (&LinuxEvdevMouseFuncs, &LinuxEvdevKeyboardFuncs);
-+    else
-+        KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
- #ifdef TOUCHSCREEN
-     KdAddMouseDriver (&TsFuncs);
- #endif
---- xserver/hw/kdrive/src/kdrive.c.orig	2006-01-31 17:13:28.000000000 +0100
-+++ xserver/hw/kdrive/src/kdrive.c	2006-01-31 17:15:28.000000000 +0100
-@@ -44,6 +44,8 @@
- #include "dpmsproc.h"
- #endif
- 
-+int use_evdev = 0;
-+
- typedef struct _kdDepths {
-     CARD8   depth;
-     CARD8   bpp;
-@@ -687,6 +689,7 @@
-     ErrorF("-videoTest       Start the server, pause momentarily and exit\n");
-     ErrorF("-origin X,Y      Locates the next screen in the the virtual screen (Xinerama)\n");
-     ErrorF("-mouse path[,n]  Filename of mouse device, n is number of buttons\n");
-+    ErrorF("-use-evdev       Use Linux evdev input\n");
-     ErrorF("-switchCmd       Command to execute on vt switch\n");
-     ErrorF("-nozap           Don't terminate server on Ctrl+Alt+Backspace\n");
-     ErrorF("vtxx             Use virtual terminal xx instead of the next available\n");
-@@ -796,6 +799,11 @@
- 	    UseMsg ();
- 	return 2;
-     }
-+    if (!strcmp (argv[i], "-use-evdev"))
-+    {
-+	use_evdev = 1;
-+	return 1;
-+    }
-     if (!strcmp (argv[i], "-keyboard"))
-     {
- 	if ((i+1) < argc)
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch
deleted file mode 100644
index 0062661..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/keyboard-resume-workaround.patch
+++ /dev/null
@@ -1,29 +0,0 @@ 
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
-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
-@@ -486,6 +486,8 @@
-     ki->minScanCode = minKeyCode;
-     ki->maxScanCode = maxKeyCode;
- #endif
-+    ki->minScanCode = 0;
-+    ki->maxScanCode = NR_KEYS;
- }
- 
- /*
-@@ -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/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/no-serial-probing.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/no-serial-probing.patch
deleted file mode 100644
index 6acb834..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/no-serial-probing.patch
+++ /dev/null
@@ -1,17 +0,0 @@ 
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
---- xserver/hw/kdrive/linux/mouse.c.orig	2004-05-13 14:25:51.000000000 -0700
-+++ xserver/hw/kdrive/linux/mouse.c	2005-09-22 12:20:47.000000000 -0700
-@@ -927,8 +927,10 @@ char *kdefaultMouse[] =  {
-     "/dev/psaux",
-     "/dev/input/mice",
-     "/dev/adbmouse",
-+#ifdef BREAK_MY_SERIAL_CONSOLE
-     "/dev/ttyS0",
-     "/dev/ttyS1",
-+#endif
- };
- 
- #define NUM_DEFAULT_MOUSE    (sizeof (kdefaultMouse) / sizeof (kdefaultMouse[0]))
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch
deleted file mode 100644
index 37811db..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/nodolt.patch
+++ /dev/null
@@ -1,16 +0,0 @@ 
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
-Index: git/configure.ac
-===================================================================
---- git.orig/configure.ac	2009-01-15 20:35:31.000000000 +0000
-+++ git/configure.ac	2009-01-15 20:35:38.000000000 +0000
-@@ -62,7 +62,6 @@
- AC_LIBTOOL_WIN32_DLL
- AC_DISABLE_STATIC
- AC_PROG_LIBTOOL
--DOLT
- AC_PROG_MAKE_SET
- PKG_PROG_PKG_CONFIG
- AC_PROG_LEX
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch
deleted file mode 100644
index af3c16c..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/optional-xkb.patch
+++ /dev/null
@@ -1,62 +0,0 @@ 
-Upstream-Status: Pending
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
-Index: xorg-server-1.2.0/Makefile.am
-===================================================================
---- xorg-server-1.2.0.orig/Makefile.am	2007-01-23 06:39:15.000000000 +0100
-+++ xorg-server-1.2.0/Makefile.am	2007-03-28 20:26:19.000000000 +0200
-@@ -30,6 +30,10 @@
- XINPUT_DIR=Xi
- endif
- 
-+if XKB
-+XKB_DIR=xkb
-+endif
-+
- if DBE
- DBE_DIR=dbe
- endif
-@@ -46,7 +50,7 @@
- 	randr \
- 	render  \
- 	$(XINPUT_DIR) \
--	xkb \
-+	$(XKB_DIR) \
- 	$(DBE_DIR) \
- 	$(MFB_DIR) \
- 	$(AFB_DIR) \
-Index: xorg-server-1.2.0/configure.ac
-===================================================================
---- xorg-server-1.2.0.orig/configure.ac	2007-01-23 06:39:15.000000000 +0100
-+++ xorg-server-1.2.0/configure.ac	2007-03-28 20:27:13.000000000 +0200
-@@ -428,6 +428,7 @@
- AC_ARG_ENABLE(dpms,           AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
- AC_ARG_ENABLE(xinput,         AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes])
- 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])
-@@ -754,12 +755,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/recipes-graphics/xorg-xserver/xserver-kdrive.inc b/meta/recipes-graphics/xorg-xserver/xserver-kdrive.inc
deleted file mode 100644
index c4c2a9f..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive.inc
+++ /dev/null
@@ -1,113 +0,0 @@ 
-LICENSE = "MIT"
-DEPENDS = "compositeproto damageproto fixesproto recordproto resourceproto \
-        scrnsaverproto xineramaproto videoproto xextproto xproto libxau libxext \
-        libxdmcp libxfont libxrandr tslib virtual/libx11 xtrans bigreqsproto \
-        xcmiscproto libdrm openssl"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=3dd2bbe3563837f80ed8926b06c1c353"
-
-PROVIDES = "virtual/xserver"
-PACKAGES =+ "xserver-kdrive-fbdev \
-             xserver-kdrive-sdl \
-             xserver-kdrive-fake \
-             xserver-kdrive-xephyr \
-             xserver-kdrive-epson \
-             xserver-kdrive-ati \
-             xserver-kdrive-chips \
-             xserver-kdrive-i810 \
-             xserver-kdrive-mach64 \
-             xserver-kdrive-mga \
-             xserver-kdrive-neomagic \
-             xserver-kdrive-nvidia \
-             xserver-kdrive-pm2 \
-             xserver-kdrive-r128 \
-             xserver-kdrive-smi \
-             xserver-kdrive-vesa \
-             xserver-kdrive-via \
-             xserver-kdrive-w100 \	
- 	"
-
-SECTION = "x11/base"
-DESCRIPTION = "X server from freedesktop.org"
-DESCRIPTION_xserver-kdrive-fbdev = "X server from freedesktop.org, supporting generic framebuffer devices"
-DESCRIPTION_xserver-kdrive-fake = "Fake X server"
-DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window"
-DESCRIPTION_xserver-kdrive-epson = "X server from freedesktop.org, supporting Epson S1D13806 devices"
-DESCRIPTION_xserver-kdrive-sdl = "X server from freedesktop.org, SDL version"
-DESCRIPTION_xserver-kdrive-w100 = "X server from freedesktop.org, supporting the ATI imageon w100 chipset"
-DESCRIPTION_xserver-kdrive-ati = "X server from freedesktop.org, supporting ATI devices"
-DESCRIPTION_xserver-kdrive-chips = "X server from freedesktop.org, supporting Chips chipsets"
-DESCRIPTION_xserver-kdrive-i810 = "X server from freedesktop.org, supporting Intel chipsets"
-DESCRIPTION_xserver-kdrive-imageon = "X server from freedesktop.org, supporting the ATI imageon 100 chipset"
-DESCRIPTION_xserver-kdrive-mach64 = "X server from freedesktop.org, supporting mach64 chipsets"
-DESCRIPTION_xserver-kdrive-mga = "X server from freedesktop.org, supporting mga chipsets"
-DESCRIPTION_xserver-kdrive-neomagic = "X server from freedesktop.org, supporting neomagic chipsets"
-DESCRIPTION_xserver-kdrive-nvidia = "X server from freedesktop.org, supporting nvidia devices"
-DESCRIPTION_xserver-kdrive-pm2 = "X server from freedesktop.org, supporting Permedia2 chipsets"
-DESCRIPTION_xserver-kdrive-r128 = "X server from freedesktop.org, supporting rage128 chipsets"
-DESCRIPTION_xserver-kdrive-smi = "X server from freedesktop.org, supporting Silicon Motion devices"
-DESCRIPTION_xserver-kdrive-vesa = "X server from freedesktop.org, supporting any card with a VESA, VGA or even EGA BIOS. x86 hardware only"
-DESCRIPTION_xserver-kdrive-via = "X server from freedesktop.org, supporting VIA chipsets"
-
-FILES_${PN} += "${libdir}/xserver/SecurityPolicy ${libdir}/xorg"
-FILES_${PN}-doc +=  "${datadir}/X11/xkb"
-ALLOW_EMPTY_${PN} = "1"
-
-FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev"
-FILES_xserver-kdrive-fake = "${bindir}/Xfake"
-FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr"
-FILES_xserver-kdrive-epson = "${bindir}/Xepson"
-FILES_xserver-kdrive-sdl = "${bindir}/Xsdl"
-FILES_xserver-kdrive-w100 = "${bindir}/Xw100"
-FILES_xserver-kdrive-ati = "${bindir}/Xati"
-FILES_xserver-kdrive-chips = "${bindir}/Xchips"
-FILES_xserver-kdrive-i810 = "${bindir}/Xi810"
-FILES_xserver-kdrive-imageon = "${bindir}/Ximageon"
-FILES_xserver-kdrive-mach64 = "${bindir}/Xmach64"
-FILES_xserver-kdrive-mga = "${bindir}/Xmga"
-FILES_xserver-kdrive-neomagic = "${bindir}/Xneomagic"
-FILES_xserver-kdrive-nvidia = "${bindir}/Xnvidia"
-FILES_xserver-kdrive-pm2 = "${bindir}/Xpm2"
-FILES_xserver-kdrive-r128 = "${bindir}/Xr128"
-FILES_xserver-kdrive-smi = "${bindir}/Xsmi"
-FILES_xserver-kdrive-vesa = "${bindir}/Xvesa"
-FILES_xserver-kdrive-via = "${bindir}/Xvia"
-
-RDEPENDS_xserver-kdrive-fbdev = "${PN}"
-RDEPENDS_xserver-kdrive-fake = "${PN}"
-RDEPENDS_xserver-kdrive-xephyr = "${PN}"
-RDEPENDS_xserver-kdrive-epson = "${PN}"
-RDEPENDS_xserver-kdrive-sdl = "${PN}"
-RDEPENDS_xserver-kdrive-w100 = "${PN}"
-RDEPENDS_xserver-kdrive-ati = "${PN}"
-RDEPENDS_xserver-kdrive-chips = "${PN}"
-RDEPENDS_xserver-kdrive-i810 = "${PN}"
-RDEPENDS_xserver-kdrive-mach64 = "${PN}"
-RDEPENDS_xserver-kdrive-mga = "${PN}"
-RDEPENDS_xserver-kdrive-neomagic = "${PN}"
-RDEPENDS_xserver-kdrive-nvidia = "${PN}"
-RDEPENDS_xserver-kdrive-pm2 = "${PN}"
-RDEPENDS_xserver-kdrive-r128 = "${PN}"
-RDEPENDS_xserver-kdrive-smi = "${PN}"
-RDEPENDS_xserver-kdrive-vesa = "${PN}"
-RDEPENDS_xserver-kdrive-via = "${PN}"
-
-inherit autotools pkgconfig
-
-ARM_INSTRUCTION_SET = "arm"
-
-EXTRA_OECONF = "--enable-composite --enable-kdrive \
-                --disable-dga --disable-dri --disable-xinerama \
-                --disable-xf86misc --disable-xf86vidmode \
-                --disable-xorg --disable-xorgcfg \
-                --disable-xkb --disable-xnest --disable-xvfb \
-                --disable-xevie --disable-xprint --disable-xtrap \
-                --disable-dmx \
-                --without-dtrace \
-                --with-default-font-path=built-ins \
-                --enable-tslib --enable-xcalibrate \
-                ac_cv_file__usr_share_X11_sgml_defs_ent=no"
-
-do_configure_prepend() {
-    sed -i -e 's/tslib-0.0/tslib-1.0/' ${S}/configure.ac
-}
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb b/meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb
deleted file mode 100644
index d90dc25..0000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb
+++ /dev/null
@@ -1,34 +0,0 @@ 
-require xserver-kdrive.inc
-
-DEPENDS += "libxkbfile libxcalibrate font-util pixman"
-
-RDEPENDS_${PN} += "xkeyboard-config"
-
-EXTRA_OECONF += "--disable-glx"
-
-PE = "1"
-PR = "r30"
-
-SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
-	file://extra-kmodes.patch \
-	file://disable-apm.patch \
-	file://no-serial-probing.patch \
-	file://keyboard-resume-workaround.patch \
-	file://enable-xcalibrate.patch \
-	file://hide-cursor-and-ppm-root.patch \
-	file://fbdev_xrandr_ioctl.patch \
-	file://fix-newer-xorg-headers.patch \
-	file://crosscompile.patch \
-	file://error-address-work-around.patch \
-        file://fix-bogus-stack-variables.patch \
-	file://nodolt.patch"
-#	file://kdrive-evdev.patch
-#	file://kdrive-use-evdev.patch
-#	file://enable-builtin-fonts.patch
-#	file://optional-xkb.patch
-
-SRC_URI[md5sum] = "cafc4e2d4ef6cf6e47f3e7dffeb3346a"
-SRC_URI[sha256sum] = "a89f13b166b412930fe418ff50032dd2cde8bb181d8b47b5ca6f848d218fdcf2"
-
-
-S = "${WORKDIR}/xorg-server-${PV}"