[OE-core] [PATCH 4/6] xserver-kdrive: remove.
Saul Wold
sgw at linux.intel.com
Fri Aug 31 16:27:41 UTC 2012
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 at 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 at 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 at 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 at 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 at 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, ®ion, &box, 1);
> -+ REGION_INIT2(pScreen, ®ion, &box, 1);
> - DamageRegionAppend(&pPix->drawable, ®ion);
> - DamageRegionProcessPending(&pPix->drawable);
> - REGION_UNINIT(pScreen, ®ion);
> -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, ®ion, &box, 1);
> -+ REGION_INIT2(pScreen, ®ion, &box, 1);
> -
> - DamageRegionAppend(pDst->pDrawable, ®ion);
> -
> -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, ®, &box, 1);
> -+ REGION_INIT2(pScreen, ®, &box, 1);
> -
> - REGION_INTERSECT(pScreen, ®, ®, 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, ®, &box, 1);
> -+ REGION_INIT2(pScreen, ®, &box, 1);
> -
> - REGION_INTERSECT(pScreen, ®, ®, &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 at 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 at 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 at 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 at chris-wilson.co.uk>
> -Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>
> -Signed-off-by: Keith Packard <keithp at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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}"
>
More information about the Openembedded-core
mailing list