[oe-commits] org.oe.angstrom-2007.12-stable xserver-kdrive:

koen commit openembedded-commits at lists.openembedded.org
Fri Mar 7 13:23:48 UTC 2008


xserver-kdrive:
Revision: 3ea27c0c881e1f8965e9208c8a3d98d022602838
Ancestor: 6795ad85517140b388d2c168ea971686ade5c7e3
xserver-kdrive-1.3/1.4: keycode MEDIUMRAW patch, oebug 2637
* see details in bugtracker and mailinglist

applied changes from 6795ad85517140b388d2c168ea971686ade5c7e3
             through 3ea27c0c881e1f8965e9208c8a3d98d022602838

Author: koen at openembedded.org
Branch: org.openembedded.angstrom-2007.12-stable
Revision: 4d6e418153aa25f4e36ce9c7a618514144875d4d
ViewMTN: http://monotone.openembedded.org/revision/info/4d6e418153aa25f4e36ce9c7a618514144875d4d
Files:
1
packages/xorg-xserver/xserver-kdrive-1.3.0.0/linux-keyboard-mediumraw.patch
packages/xorg-xserver/xserver-kdrive-1.4/linux-keyboard-mediumraw.patch
BACKPORTS.txt
packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb
packages/xorg-xserver/xserver-kdrive_1.4.bb
Diffs:

#
# mt diff -rc23d346985884b4243757c7cd82cc16124675a9c -r4d6e418153aa25f4e36ce9c7a618514144875d4d
#
# 
# 
# add_file "packages/xorg-xserver/xserver-kdrive-1.3.0.0/linux-keyboard-mediumraw.patch"
#  content [e5ade42dad2df4fd8a283ea21343e22ea1b5b5d6]
# 
# add_file "packages/xorg-xserver/xserver-kdrive-1.4/linux-keyboard-mediumraw.patch"
#  content [faca4d8feba0272517c84f11ac61a39c0b055556]
# 
# patch "BACKPORTS.txt"
#  from [0651562bed84760f2141e8774f793b903521c982]
#    to [d395965e1c8c0f33347aa4dc7e345f57bae821be]
# 
# patch "packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb"
#  from [58d9f93157413d0ca323b5aeb9132e14c6bf0210]
#    to [0bf8f6256ba3fbbce650815ef764ed57e894e4ac]
# 
# patch "packages/xorg-xserver/xserver-kdrive_1.4.bb"
#  from [c9837b4198cd07399be8e9f76ed051e1a9919cfe]
#    to [5ae4e3932f2b9ef1c9bf7eddd2cb97b402f2b28c]
# 
============================================================
--- packages/xorg-xserver/xserver-kdrive-1.3.0.0/linux-keyboard-mediumraw.patch	e5ade42dad2df4fd8a283ea21343e22ea1b5b5d6
+++ packages/xorg-xserver/xserver-kdrive-1.3.0.0/linux-keyboard-mediumraw.patch	e5ade42dad2df4fd8a283ea21343e22ea1b5b5d6
@@ -0,0 +1,83 @@
+Index: xorg-server-1.3.0.0/hw/kdrive/linux/keyboard.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/linux/keyboard.c	2006-11-16 18:01:23.000000000 +0000
++++ xorg-server-1.3.0.0/hw/kdrive/linux/keyboard.c	2007-08-12 12:14:29.000000000 +0000
+@@ -384,14 +384,35 @@
+ LinuxKeyboardRead (int fd, void *closure)
+ {
+     unsigned char   buf[256], *b;
+-    int		    n;
++    int		    n, mediumraw_data, mediumraw_event;
++    static enum { LOWKEY, BYTE1, BYTE2 } mediumraw_state = LOWKEY;
+ 
+     while ((n = read (fd, buf, sizeof (buf))) > 0)
+     {
+ 	b = buf;
+ 	while (n--)
+ 	{
+-	    KdEnqueueKeyboardEvent (b[0] & 0x7f, b[0] & 0x80);
++	    switch (mediumraw_state)
++	    {
++	    case LOWKEY:
++		if ( (b[0] & 0x7f) == 0)
++		{
++		    mediumraw_state = BYTE1;
++		    mediumraw_event = b[0] & 0x80;
++		}
++		else
++		    KdEnqueueKeyboardEvent (b[0] & 0x7f, b[0] & 0x80);
++		break;
++	    case BYTE1:
++		mediumraw_data = (b[0] & 0x7f) << 7;
++		mediumraw_state = BYTE2;
++		break;
++	    case BYTE2:
++		/* FIXME: KdEnqueueKeyboardEvent should accept word size */
++		KdEnqueueKeyboardEvent ( mediumraw_data | (b[0] & 0x7f), mediumraw_event);
++		mediumraw_state = LOWKEY;
++		break;
++	    }
+ 	    b++;
+ 	}
+     }
+Index: xorg-server-1.3.0.0/hw/xfree86/os-support/linux/lnx_kbd.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/xfree86/os-support/linux/lnx_kbd.c	2006-11-16 18:01:25.000000000 +0000
++++ xorg-server-1.3.0.0/hw/xfree86/os-support/linux/lnx_kbd.c	2007-08-12 12:14:29.000000000 +0000
+@@ -430,12 +430,32 @@
+ {
+     KbdDevPtr pKbd = (KbdDevPtr) pInfo->private;
+     unsigned char rBuf[64];
+-    int nBytes, i;
++    int nBytes, i, mediumraw_data, mediumraw_event;
++    static enum { LOWKEY, BYTE1, BYTE2 } mediumraw_state = LOWKEY;
+     if ((nBytes = read( pInfo->fd, (char *)rBuf, sizeof(rBuf))) > 0) {
+-       for (i = 0; i < nBytes; i++)
+-           pKbd->PostEvent(pInfo, rBuf[i] & 0x7f,
+-                           rBuf[i] & 0x80 ? FALSE : TRUE);
++       for (i = 0; i < nBytes; i++) {
++           switch (mediumraw_state) {
++           case LOWKEY:
++               if ( (rBuf[i] & 0x7f) == 0) {
++                   mediumraw_state = BYTE1;
++                   mediumraw_event = rBuf[i] & 0x80;
++               }
++               else
++                   pKbd->PostEvent(pInfo, rBuf[i] & 0x7f,
++                                   rBuf[i] & 0x80 ? FALSE : TRUE);
++               break;
++           case BYTE1:
++               mediumraw_data = (rBuf[i] & 0x7f) << 7;
++               mediumraw_state = BYTE2;
++               break;
++           case BYTE2:
++               pKbd->PostEvent(pInfo, mediumraw_data | (rBuf[i] & 0x7f),
++                               mediumraw_event ? FALSE : TRUE);
++               mediumraw_state = LOWKEY;
++               break;
++           }
+        }
++    }
+ }
+ 
+ static Bool
============================================================
--- packages/xorg-xserver/xserver-kdrive-1.4/linux-keyboard-mediumraw.patch	faca4d8feba0272517c84f11ac61a39c0b055556
+++ packages/xorg-xserver/xserver-kdrive-1.4/linux-keyboard-mediumraw.patch	faca4d8feba0272517c84f11ac61a39c0b055556
@@ -0,0 +1,44 @@
+Index: git/hw/kdrive/linux/keyboard.c
+===================================================================
+--- git.orig/hw/kdrive/linux/keyboard.c	2007-11-14 21:30:45.000000000 +0000
++++ git/hw/kdrive/linux/keyboard.c	2007-11-15 12:00:11.000000000 +0000
+@@ -42,6 +42,8 @@
+ #include <sys/ioctl.h>
+ 
+ extern int LinuxConsoleFd;
++static unsigned char mediumraw_data, mediumraw_up;
++static enum { DEFAULT, EXTBYTE1, EXTBYTE2 } mediumraw_state = DEFAULT;
+ 
+ static const KeySym linux_to_x[256] = {
+ 	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+@@ -701,7 +703,29 @@
+             else
+ #endif
+                 scancode = b[0] & 0x7f;
+-	    KdEnqueueKeyboardEvent (closure, scancode, b[0] & 0x80);
++	    /* This is extended medium raw mode interpreter
++	       see linux/drivers/keyboard.c (kbd->kbdmode == VC_MEDIUMRAW) */
++	    switch (mediumraw_state)
++	    {
++	    case DEFAULT:
++		if (scancode == 0)
++		{
++		    mediumraw_state = EXTBYTE1;
++		    mediumraw_up = b[0] & 0x80;
++		}
++		else
++		    KdEnqueueKeyboardEvent (closure, scancode, b[0] & 0x80);
++		break;
++	    case EXTBYTE1:
++		mediumraw_data = scancode;
++		mediumraw_state = EXTBYTE2;
++		break;
++	    case EXTBYTE2:
++		/* Note: Only codes < 256 will pass correctly through KdEnqueueKeyboardEvent() */
++	      KdEnqueueKeyboardEvent (closure, (int)mediumraw_data << 7 | scancode, mediumraw_up);
++		mediumraw_state = DEFAULT;
++		break;
++	    }
+ 	    b++;
+ 	}
+     }
============================================================
--- BACKPORTS.txt	0651562bed84760f2141e8774f793b903521c982
+++ BACKPORTS.txt	d395965e1c8c0f33347aa4dc7e345f57bae821be
@@ -194,5 +194,5 @@
 95605d9087fdf6917d1950bf9008c71fe0efdfda linux-rp-2.6.24: add netfilter modules for qemux86, make 2.6.24 preferred (Hans, Koen)
 eb1c40b4c0c0e45af72840032d1f8ffdf59afecc linux-rp-2.6.24: Add tosa supprot from Dmitry Baryshkov (#3879) (Hans, Koen)
 9a5df4f82194968b8ea8a94d7effc5bf61c1e650 zaurusd fixes (Stanislav, Koen)
+3ea27c0c881e1f8965e9208c8a3d98d022602838 xkdrive medium-raw fixes (Stanislav, Koen)
 
-
============================================================
--- packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb	58d9f93157413d0ca323b5aeb9132e14c6bf0210
+++ packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb	0bf8f6256ba3fbbce650815ef764ed57e894e4ac
@@ -1,9 +1,9 @@ PE = "1"
 require xserver-kdrive-common.inc
 
 DEPENDS += "libxkbfile libxcalibrate"
 
 PE = "1"
-PR = "r23"
+PR = "r24"
 
 SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
 	${KDRIVE_COMMON_PATCHES} \
@@ -20,6 +20,7 @@ SRC_URI = "${XORG_MIRROR}/individual/xse
 	file://w100-autofoo.patch;patch=1 \
 	file://w100-fix-offscreen-bmp.patch;patch=1 \
         file://kdrive-1.3-18bpp.patch;patch=1 \
+        file://linux-keyboard-mediumraw.patch;patch=1 \
         file://gumstix-kmode.patch;patch=1 \
         file://smedia-glamo.patch;patch=1 \
         file://build-glamo.patch;patch=1 \
============================================================
--- packages/xorg-xserver/xserver-kdrive_1.4.bb	c9837b4198cd07399be8e9f76ed051e1a9919cfe
+++ packages/xorg-xserver/xserver-kdrive_1.4.bb	5ae4e3932f2b9ef1c9bf7eddd2cb97b402f2b28c
@@ -1,8 +1,9 @@ PE = "1"
 require xserver-kdrive-common.inc
 
 DEPENDS += "libxkbfile libxcalibrate pixman"
 
 PE = "1"
+PR = "r2"
 
 SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
 	${KDRIVE_COMMON_PATCHES} \
@@ -15,6 +16,7 @@ SRC_URI = "${XORG_MIRROR}/individual/xse
 	file://w100-autofoo.patch;patch=1 \
 	file://w100-fix-offscreen-bmp.patch;patch=1 \
 	file://w100-new-input-world-order.patch;patch=1 \
+	file://linux-keyboard-mediumraw.patch;patch=1 \
 	file://xcalibrate-new-input-world-order.patch;patch=1 \
 	file://tslib-default-device.patch;patch=1 \
 	file://fbdev-evdev.patch;patch=1 \






More information about the Openembedded-commits mailing list