Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/3] xserver-kdrive: update to 1.11.2
@ 2011-12-16  9:15 Xiaofeng Yan
  2011-12-16  9:15 ` [PATCH 1/3] udev: add a link between /dev/input/event* with keyboard Xiaofeng Yan
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Xiaofeng Yan @ 2011-12-16  9:15 UTC (permalink / raw)
  To: openembedded-core

From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

Some changes are as follow:
1 Adopt evdev mode to get keyboard 
  - modify Xserver in meta/recipes-graphics/x11-common/x11-common/etc/X11/
2 Create a symlink to any keyboard input device
  - modify local.rules in recipes-core/udev/udev-164
  The goal of this is for xserver can get keyboard device automatically without appointing an input event manually. 

Pull URL: git://git.pokylinux.org/poky-contrib.git
  Branch: xiaofeng/update
  Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=xiaofeng/update

Thanks,
    Xiaofeng Yan <xiaofeng.yan@windriver.com>
---


Xiaofeng Yan (3):
  udev: add a link between /dev/input/event* with keyboard
  x11-common: Change drive mode of Xfbdev when xserver using
    framebuffer
  xserver-kdrive: update to 1.11.2

 meta/recipes-core/udev/udev-164/local.rules        |    3 +-
 .../x11-common/x11-common/etc/X11/Xserver          |    4 +-
 .../xserver-kdrive-1.11.2/disable-apm.patch        |   22 ++
 .../xserver-kdrive-1.11.2/extra-kmodes.patch       |   82 ++++++
 .../xserver-kdrive-1.11.2/fbdev_xrandr_ioctl.patch |   57 ++++
 .../fix-newer-xorg-headers.patch                   |   13 +
 .../hide-cursor-and-ppm-root.patch                 |  298 ++++++++++++++++++++
 .../keyboard-resume-workaround.patch               |   26 ++
 .../xserver-kdrive-1.11.2/no-serial-probing.patch  |   16 +
 .../xorg-xserver/xserver-kdrive_1.11.2.bb          |   26 ++
 10 files changed, 545 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/disable-apm.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/extra-kmodes.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/fbdev_xrandr_ioctl.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/fix-newer-xorg-headers.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/hide-cursor-and-ppm-root.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/keyboard-resume-workaround.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/no-serial-probing.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.11.2.bb




^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/3] udev: add a link between /dev/input/event* with keyboard
  2011-12-16  9:15 [PATCH 0/3] xserver-kdrive: update to 1.11.2 Xiaofeng Yan
@ 2011-12-16  9:15 ` Xiaofeng Yan
  2011-12-16  9:15 ` [PATCH 2/3] x11-common: Change drive mode of Xfbdev when xserver using framebuffer Xiaofeng Yan
  2011-12-16  9:15 ` [PATCH 3/3] xserver-kdrive: update to 1.11.2 Xiaofeng Yan
  2 siblings, 0 replies; 6+ messages in thread
From: Xiaofeng Yan @ 2011-12-16  9:15 UTC (permalink / raw)
  To: openembedded-core

From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

keyboard device could be one of event*.
For getting keyboard device to user easier, I make a link between the event of keyboard \
with keyboard0.

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---
 meta/recipes-core/udev/udev-164/local.rules |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/meta/recipes-core/udev/udev-164/local.rules b/meta/recipes-core/udev/udev-164/local.rules
index 625e49a..d96f840 100644
--- a/meta/recipes-core/udev/udev-164/local.rules
+++ b/meta/recipes-core/udev/udev-164/local.rules
@@ -32,4 +32,5 @@ ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe
 
 # Create a symlink to any touchscreen input device
 SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
-
+# Create a symlink to any keyboard input device
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="*keyboard", SYMLINK+="input/keyboard0"
-- 
1.7.0.4




^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] x11-common: Change drive mode of Xfbdev when xserver using framebuffer
  2011-12-16  9:15 [PATCH 0/3] xserver-kdrive: update to 1.11.2 Xiaofeng Yan
  2011-12-16  9:15 ` [PATCH 1/3] udev: add a link between /dev/input/event* with keyboard Xiaofeng Yan
@ 2011-12-16  9:15 ` Xiaofeng Yan
  2011-12-22 19:14   ` Saul Wold
  2011-12-16  9:15 ` [PATCH 3/3] xserver-kdrive: update to 1.11.2 Xiaofeng Yan
  2 siblings, 1 reply; 6+ messages in thread
From: Xiaofeng Yan @ 2011-12-16  9:15 UTC (permalink / raw)
  To: openembedded-core

From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

The previous mode of starting X is as follow:
$Xfbdev :0 -keybd keyboard -mouse tslib
This mode cause that some keys can't be mapped rightly. \
for example "Down" have the same function with "Enter".

another drive mode "evdev" can work rightly in new version.
$Xfbdev :0 -keybd evdev,,device=/dev/input/event0 -mouse tslib

So I select drive mode "evdev".

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---
 .../x11-common/x11-common/etc/X11/Xserver          |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver
index 57923e6..d1e17fb 100644
--- a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver
+++ b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver
@@ -28,11 +28,13 @@ module_id() {
 
 ARGS=" -br -pn"
 
+KD_DRIVE_KEYBOARD="-keybd keyboard"
+KD_DRIVE_EVDEV="-keybd evdev,,device=/dev/input/keyboard0"
 if [ "$XSERVER" != "/usr/bin/Xorg" ]; then
 
         . /etc/formfactor/config
 
-        ARGS="$ARGS -keybd keyboard"
+        ARGS="$ARGS $KD_DRIVE_EVDEV"
 
         # use usb mouse if present
         if [ -z "$TSLIB_TSDEVICE" ] && [ -e /dev/input/mice ]; then
-- 
1.7.0.4




^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] xserver-kdrive: update to 1.11.2
  2011-12-16  9:15 [PATCH 0/3] xserver-kdrive: update to 1.11.2 Xiaofeng Yan
  2011-12-16  9:15 ` [PATCH 1/3] udev: add a link between /dev/input/event* with keyboard Xiaofeng Yan
  2011-12-16  9:15 ` [PATCH 2/3] x11-common: Change drive mode of Xfbdev when xserver using framebuffer Xiaofeng Yan
@ 2011-12-16  9:15 ` Xiaofeng Yan
  2 siblings, 0 replies; 6+ messages in thread
From: Xiaofeng Yan @ 2011-12-16  9:15 UTC (permalink / raw)
  To: openembedded-core

From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

update to 1.11.2

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---
 .../xserver-kdrive-1.11.2/disable-apm.patch        |   22 ++
 .../xserver-kdrive-1.11.2/extra-kmodes.patch       |   82 ++++++
 .../xserver-kdrive-1.11.2/fbdev_xrandr_ioctl.patch |   57 ++++
 .../fix-newer-xorg-headers.patch                   |   13 +
 .../hide-cursor-and-ppm-root.patch                 |  298 ++++++++++++++++++++
 .../keyboard-resume-workaround.patch               |   26 ++
 .../xserver-kdrive-1.11.2/no-serial-probing.patch  |   16 +
 .../xorg-xserver/xserver-kdrive_1.11.2.bb          |   26 ++
 8 files changed, 540 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/disable-apm.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/extra-kmodes.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/fbdev_xrandr_ioctl.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/fix-newer-xorg-headers.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/hide-cursor-and-ppm-root.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/keyboard-resume-workaround.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/no-serial-probing.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.11.2.bb

diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/disable-apm.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/disable-apm.patch
new file mode 100644
index 0000000..e1d5622
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/disable-apm.patch
@@ -0,0 +1,22 @@
+Upstream-Status: Inappropriate [disable feature]
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+
+--- xorg-server-1.11.1.901/hw/kdrive/linux/linux.c	2011-07-15 21:26:40.000000000 +0800
++++ xorg-server-1.11.1.901/hw/kdrive/linux/linux.c.new	2011-10-24 16:15:12.000000000 +0800
+@@ -251,6 +251,7 @@
+     /*
+      * Open the APM driver
+      */
++    /*
+     LinuxApmFd = open ("/dev/apm_bios", 2);
+     if (LinuxApmFd < 0 && errno == ENOENT)
+ 	LinuxApmFd = open ("/dev/misc/apm_bios", 2);
+@@ -261,6 +262,7 @@
+ 	RegisterBlockAndWakeupHandlers (LinuxApmBlock, LinuxApmWakeup, 0);
+ 	AddEnabledDevice (LinuxApmFd);
+     }
++    */
+ 
+     /*
+      * now get the VT
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/extra-kmodes.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/extra-kmodes.patch
new file mode 100644
index 0000000..40298d0
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/extra-kmodes.patch
@@ -0,0 +1,82 @@
+Add some extra video modes and change the default to VGA.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+
+--- xorg-server-1.11.1.901/hw/kdrive/src/kmode.c	2011-03-02 12:09:32.000000000 +0800
++++ xorg-server-1.11.1.901/hw/kdrive/src/kmode.c.new	2011-10-24 15:58:43.000000000 +0800
+@@ -29,6 +29,29 @@
+ 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:
+      *
+@@ -39,6 +62,12 @@
+ 	            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 */
+@@ -74,11 +103,18 @@
+ 		    16,	    120,    176,    KdSyncNegative, /* 37.861 */
+ 		    1,	    20,	    24,	    KdSyncNegative, /* 72.809 */
+     },
+-    {	640,	480,	60,	25175,			    /* VESA */
++    /* 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 */
+ 		    32,	    152,    248,    KdSyncPositive, /* 53.674 */
+@@ -88,8 +124,7 @@
+ 		    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.11.2/fbdev_xrandr_ioctl.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/fbdev_xrandr_ioctl.patch
new file mode 100644
index 0000000..7f4998e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/fbdev_xrandr_ioctl.patch
@@ -0,0 +1,57 @@
+Upstream-Status: Pending
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+Index: xorg-server-1.11.1.901/hw/kdrive/fbdev/fbdev.c
+===================================================================
+--- xorg-server-1.11.1.901/hw/kdrive/fbdev/fbdev.c	2011-10-25 14:48:04.000000000 +0800
++++ xorg-server-1.11.1.901/hw/kdrive/fbdev/fbdev.c	2011-10-25 14:50:16.000000000 +0800
+@@ -485,6 +485,7 @@
+     KdScreenInfo	*screen = pScreenPriv->screen;
+     FbdevScrPriv	*scrpriv = screen->driver;
+     Bool		wasEnabled = pScreenPriv->enabled;
++    FbdevPriv          *priv = screen->card->driver;
+     FbdevScrPriv	oldscr;
+     int			oldwidth;
+     int			oldheight;
+@@ -517,6 +518,41 @@
+      * 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);
+ 
+     fbdevUnmapFramebuffer (screen);
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/fix-newer-xorg-headers.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/fix-newer-xorg-headers.patch
new file mode 100644
index 0000000..18781b3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/fix-newer-xorg-headers.patch
@@ -0,0 +1,13 @@
+Upstream-Status: Pending
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+--- xorg-server-1.11.1.901/render/glyphstr.h	2011-03-02 12:09:33.000000000 +0800
++++ xorg-server-1.11.1.901/render/glyphstr.h.new	2011-10-24 16:19:32.000000000 +0800
+@@ -25,6 +25,7 @@
+ #ifndef _GLYPHSTR_H_
+ #define _GLYPHSTR_H_
+ 
++#include <X11/X.h>
+ #include <X11/extensions/renderproto.h>
+ #include "picture.h"
+ #include "screenint.h"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/hide-cursor-and-ppm-root.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/hide-cursor-and-ppm-root.patch
new file mode 100644
index 0000000..37e0efe
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/hide-cursor-and-ppm-root.patch
@@ -0,0 +1,298 @@
+Upstream-Status: Pending
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+Index: xorg-server-1.11.1.901/dix/window.c
+===================================================================
+--- xorg-server-1.11.1.901/dix/window.c	2011-07-15 21:26:40.000000000 +0800
++++ xorg-server-1.11.1.901/dix/window.c.new	2011-10-25 13:57:50.000000000 +0800
+@@ -182,10 +182,123 @@
+ 
+ #define SubStrSend(pWin,pParent) (StrSend(pWin) || SubSend(pParent))
+ 
++char* RootPPM = NULL;
++
+ #ifdef COMPOSITE
+ static const char *overlay_win_name = "<composite overlay>";
+ #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 const char *
+ get_window_name(WindowPtr pWin)
+ {
+@@ -409,6 +522,35 @@
+     int len = BitmapBytePad(sizeof(long));
+     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);
+
+Index: xorg-server-1.11.1.901/hw/kdrive/src/kdrive.c
+===================================================================
+--- xorg-server-1.11.1.901/hw/kdrive/src/kdrive.c	2011-08-01 07:44:54.000000000 +0800
++++ xorg-server-1.11.1.901/hw/kdrive/src/kdrive.c.new	2011-10-25 14:04:38.000000000 +0800
+@@ -60,6 +60,9 @@
+     { 32, 32 }
+ };
+ 
++int 
++ProcXFixesHideCursor (ClientPtr client) ;
++
+ #define NUM_KD_DEPTHS (sizeof (kdDepths) / sizeof (kdDepths[0]))
+ 
+ #define KD_DEFAULT_BUTTONS 5
+@@ -90,6 +93,9 @@
+  */
+ 
+ KdOsFuncs	*kdOsFuncs;
++extern Bool CursorInitiallyHidden; /* See Xfixes cursor.c */
++extern char* RootPPM;             /* dix/window.c */
++
+ 
+ void
+ KdDisableScreen (ScreenPtr pScreen)
+@@ -454,6 +460,9 @@
+     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
+@@ -517,6 +526,20 @@
+ 	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.11.1.901/xfixes/cursor.c
+===================================================================
+--- xorg-server-1.11.1.901/xfixes/cursor.c	2011-07-15 21:26:40.000000000 +0800
++++ xorg-server-1.11.1.901/xfixes/cursor.c.new	2011-10-25 14:13:09.000000000 +0800
+@@ -60,6 +60,7 @@
+ static RESTYPE		CursorClientType;
+ static RESTYPE		CursorHideCountType;
+ static RESTYPE		CursorWindowType;
++static Bool             CursorGloballyHidden;
+ RESTYPE			PointerBarrierType;
+ static CursorPtr	CursorCurrent[MAXDEVICES];
+ 
+@@ -68,6 +69,8 @@
+ 
+ static void deleteCursorHideCountsForScreen (ScreenPtr pScreen);
+ 
++Bool CursorInitiallyHidden = FALSE;
++
+ #define VERIFY_CURSOR(pCursor, cursor, client, access)			\
+     do {								\
+ 	int err;							\
+@@ -160,7 +163,7 @@
+     if (ConnectionInfo)
+ 	CursorVisible = EnableCursor;
+ 
+-    if (cs->pCursorHideCounts != NULL || !CursorVisible) {
++    if (cs->pCursorHideCounts != NULL || !CursorVisible || CursorGloballyHidden) {
+ 	ret = (*pScreen->DisplayCursor) (pDev, pScreen, NullCursor);
+     } else {
+ 	ret = (*pScreen->DisplayCursor) (pDev, pScreen, pCursor);
+@@ -896,6 +899,13 @@
+ 	return 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. 
+@@ -959,9 +969,19 @@
+ 	return 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) {
+@@ -1426,6 +1446,8 @@
+ {
+     int	i;
+ 
++    CursorGloballyHidden = CursorInitiallyHidden;
++    
+     if (party_like_its_1989)
+ 	CursorVisible = EnableCursor;
+     
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/keyboard-resume-workaround.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/keyboard-resume-workaround.patch
new file mode 100644
index 0000000..bdf22ba
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/keyboard-resume-workaround.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Pending
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+--- xorg-server-1.11.1.901/hw/kdrive/linux/keyboard.c	2011-10-24 16:44:10.000000000 +0800
++++ xorg-server-1.11.1.901/hw/kdrive/linux/keyboard.c.new	2011-10-24 16:41:27.000000000 +0800
+@@ -486,6 +486,8 @@
+     ki->minScanCode = minKeyCode;
+     ki->maxScanCode = maxKeyCode;
+ #endif
++    ki->minScanCode = 0;
++    ki->maxScanCode = NR_KEYS;
+ }
+ 
+ /*
+@@ -707,11 +709,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.11.2/no-serial-probing.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/no-serial-probing.patch
new file mode 100644
index 0000000..dbc2bf8
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.11.2/no-serial-probing.patch
@@ -0,0 +1,16 @@
+Upstream-Status: Pending
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+--- xorg-server-1.11.1.901/hw/kdrive/linux/mouse.c	2011-10-24 16:33:08.000000000 +0800
++++ xorg-server-1.11.1.901/hw/kdrive/linux/mouse.c.new	2011-10-24 16:23:23.000000000 +0800
+@@ -924,8 +924,10 @@
+     "/dev/mouse",
+     "/dev/psaux",
+     "/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.11.2.bb b/meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.11.2.bb
new file mode 100644
index 0000000..43c4113
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.11.2.bb
@@ -0,0 +1,26 @@
+require xserver-kdrive.inc
+
+DEPENDS += "libxkbfile libxcalibrate font-util pixman"
+
+RDEPENDS_${PN} += "xkeyboard-config"
+
+EXTRA_OECONF += "--disable-glx --enable-unit-tests=no  --enable-kdrive-kbd=yes --enable-kdrive-evdev=yes --enable-config-udev=yes"
+
+PE = "1"
+PR = "r0"
+
+LIC_FILES_CHKSUM  = "file://COPYING;md5=74df27b6254cc88d2799b5f4f5949c00"
+
+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://hide-cursor-and-ppm-root.patch \
+		file://fbdev_xrandr_ioctl.patch \
+		file://fix-newer-xorg-headers.patch"
+	
+SRC_URI[md5sum] = "8796fff441e5435ee36a72579008af24"
+SRC_URI[sha256sum] = "fa415decf02027ca278b06254ccfbcceba2a83c2741405257ebf749da4a73cf2"
+
+S = "${WORKDIR}/xorg-server-${PV}"
-- 
1.7.0.4




^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] x11-common: Change drive mode of Xfbdev when xserver using framebuffer
  2011-12-16  9:15 ` [PATCH 2/3] x11-common: Change drive mode of Xfbdev when xserver using framebuffer Xiaofeng Yan
@ 2011-12-22 19:14   ` Saul Wold
  2011-12-23  7:07     ` Xiaofeng Yan
  0 siblings, 1 reply; 6+ messages in thread
From: Saul Wold @ 2011-12-22 19:14 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 12/16/2011 01:15 AM, Xiaofeng Yan wrote:
> From: Xiaofeng Yan<xiaofeng.yan@windriver.com>
>
> The previous mode of starting X is as follow:
> $Xfbdev :0 -keybd keyboard -mouse tslib
> This mode cause that some keys can't be mapped rightly. \
> for example "Down" have the same function with "Enter".
>
> another drive mode "evdev" can work rightly in new version.
> $Xfbdev :0 -keybd evdev,,device=/dev/input/event0 -mouse tslib
>
> So I select drive mode "evdev".
>
> Signed-off-by: Xiaofeng Yan<xiaofeng.yan@windriver.com>
> ---
>   .../x11-common/x11-common/etc/X11/Xserver          |    4 +++-
>   1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver
> index 57923e6..d1e17fb 100644
> --- a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver
> +++ b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver
> @@ -28,11 +28,13 @@ module_id() {
>
>   ARGS=" -br -pn"
>
> +KD_DRIVE_KEYBOARD="-keybd keyboard"
> +KD_DRIVE_EVDEV="-keybd evdev,,device=/dev/input/keyboard0"
Not sure it's such a good idea to hard code the /dev here.

>   if [ "$XSERVER" != "/usr/bin/Xorg" ]; then
>
>           . /etc/formfactor/config
>
> -        ARGS="$ARGS -keybd keyboard"
> +        ARGS="$ARGS $KD_DRIVE_EVDEV"
>
>           # use usb mouse if present
>           if [ -z "$TSLIB_TSDEVICE" ]&&  [ -e /dev/input/mice ]; then



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] x11-common: Change drive mode of Xfbdev when xserver using framebuffer
  2011-12-22 19:14   ` Saul Wold
@ 2011-12-23  7:07     ` Xiaofeng Yan
  0 siblings, 0 replies; 6+ messages in thread
From: Xiaofeng Yan @ 2011-12-23  7:07 UTC (permalink / raw)
  To: Saul Wold; +Cc: Patches and discussions about the oe-core layer

On 2011年12月23日 03:14, Saul Wold wrote:
> On 12/16/2011 01:15 AM, Xiaofeng Yan wrote:
>> From: Xiaofeng Yan<xiaofeng.yan@windriver.com>
>>
>> The previous mode of starting X is as follow:
>> $Xfbdev :0 -keybd keyboard -mouse tslib
>> This mode cause that some keys can't be mapped rightly. \
>> for example "Down" have the same function with "Enter".
>>
>> another drive mode "evdev" can work rightly in new version.
>> $Xfbdev :0 -keybd evdev,,device=/dev/input/event0 -mouse tslib
>>
>> So I select drive mode "evdev".
>>
>> Signed-off-by: Xiaofeng Yan<xiaofeng.yan@windriver.com>
>> ---
>> .../x11-common/x11-common/etc/X11/Xserver | 4 +++-
>> 1 files changed, 3 insertions(+), 1 deletions(-)
>>
>> diff --git 
>> a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver 
>> b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver
>> index 57923e6..d1e17fb 100644
>> --- a/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver
>> +++ b/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xserver
>> @@ -28,11 +28,13 @@ module_id() {
>>
>> ARGS=" -br -pn"
>>
>> +KD_DRIVE_KEYBOARD="-keybd keyboard"
>> +KD_DRIVE_EVDEV="-keybd evdev,,device=/dev/input/keyboard0"
> Not sure it's such a good idea to hard code the /dev here.
I use "udev" to recognize keyboard device from "event*" automatically.





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-12-23  7:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-16  9:15 [PATCH 0/3] xserver-kdrive: update to 1.11.2 Xiaofeng Yan
2011-12-16  9:15 ` [PATCH 1/3] udev: add a link between /dev/input/event* with keyboard Xiaofeng Yan
2011-12-16  9:15 ` [PATCH 2/3] x11-common: Change drive mode of Xfbdev when xserver using framebuffer Xiaofeng Yan
2011-12-22 19:14   ` Saul Wold
2011-12-23  7:07     ` Xiaofeng Yan
2011-12-16  9:15 ` [PATCH 3/3] xserver-kdrive: update to 1.11.2 Xiaofeng Yan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox