summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Zabel <philipp.zabel@gmail.com>2008-02-02 23:15:29 +0000
committerPhilipp Zabel <philipp.zabel@gmail.com>2008-02-02 23:15:29 +0000
commit6746a39d827d29d7657add85613833f2fd49ab5e (patch)
tree0a040e4441f80949664b617aa715a5034eb67b67
parent1bc7962516feae076b10cfcfd2212cd4fab4e480 (diff)
xserver-kdrive: remove a blocking read in the keyboard driver resume path
-rw-r--r--packages/xorg-xserver/xserver-kdrive-1.4/keyboard-resume-workaround.patch18
-rw-r--r--packages/xorg-xserver/xserver-kdrive_1.4.bb3
2 files changed, 20 insertions, 1 deletions
diff --git a/packages/xorg-xserver/xserver-kdrive-1.4/keyboard-resume-workaround.patch b/packages/xorg-xserver/xserver-kdrive-1.4/keyboard-resume-workaround.patch
new file mode 100644
index 0000000000..ced1904916
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-1.4/keyboard-resume-workaround.patch
@@ -0,0 +1,18 @@
+Index: xorg-server-1.4/hw/kdrive/linux/keyboard.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/linux/keyboard.c 2007-09-29 18:31:15.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/linux/keyboard.c 2007-09-29 18:33:02.000000000 +0200
+@@ -743,11 +743,8 @@
+ cfsetispeed(&nTty, 9600);
+ cfsetospeed(&nTty, 9600);
+ tcsetattr(fd, TCSANOW, &nTty);
+- /*
+- * Flush any pending keystrokes
+- */
+- while ((n = read (fd, buf, sizeof (buf))) > 0)
+- ;
++ n = fcntl(fd, F_GETFL);
++ fprintf(stderr, "LinuxConsoleFd status flags: %x (O_NONBLOCK = %x)\n", n, O_NONBLOCK);
+ KdRegisterFd (fd, LinuxKeyboardRead, ki);
+ return Success;
+ }
diff --git a/packages/xorg-xserver/xserver-kdrive_1.4.bb b/packages/xorg-xserver/xserver-kdrive_1.4.bb
index f4d5be38e1..c87090197c 100644
--- a/packages/xorg-xserver/xserver-kdrive_1.4.bb
+++ b/packages/xorg-xserver/xserver-kdrive_1.4.bb
@@ -3,7 +3,7 @@ require xserver-kdrive-common.inc
DEPENDS += "hal libxkbfile libxcalibrate pixman"
PE = "1"
-PR = "r2"
+PR = "r3"
SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
${KDRIVE_COMMON_PATCHES} \
@@ -20,6 +20,7 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
file://xcalibrate-new-input-world-order.patch;patch=1 \
file://tslib-default-device.patch;patch=1 \
file://fbdev-evdev.patch;patch=1 \
+ file://keyboard-resume-workaround.patch;patch=1 \
file://xorg-avr32-support.diff;patch=1 \
"