summaryrefslogtreecommitdiffstats
path: root/meta/packages/xserver/xserver-kdrive
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/xserver/xserver-kdrive')
-rw-r--r--meta/packages/xserver/xserver-kdrive/build-20050207-against-X11R7.diff464
-rw-r--r--meta/packages/xserver/xserver-kdrive/devfs.patch47
-rw-r--r--meta/packages/xserver/xserver-kdrive/disable-apm.patch20
-rw-r--r--meta/packages/xserver/xserver-kdrive/epson.patch11
-rw-r--r--meta/packages/xserver/xserver-kdrive/faster-rotated.patch241
-rw-r--r--meta/packages/xserver/xserver-kdrive/fbdev-not-fix.patch14
-rw-r--r--meta/packages/xserver/xserver-kdrive/kdrive-evdev.patch515
-rw-r--r--meta/packages/xserver/xserver-kdrive/kdrive-use-evdev.patch53
-rw-r--r--meta/packages/xserver/xserver-kdrive/kmode.patch28
-rw-r--r--meta/packages/xserver/xserver-kdrive/no-serial-probing.patch13
-rw-r--r--meta/packages/xserver/xserver-kdrive/onlyfb.patch21
-rw-r--r--meta/packages/xserver/xserver-kdrive/xserver-kdrive-poodle.patch44
12 files changed, 1471 insertions, 0 deletions
diff --git a/meta/packages/xserver/xserver-kdrive/build-20050207-against-X11R7.diff b/meta/packages/xserver/xserver-kdrive/build-20050207-against-X11R7.diff
new file mode 100644
index 0000000000..596e498b80
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/build-20050207-against-X11R7.diff
@@ -0,0 +1,464 @@
1--- xserver.orig/configure.ac 2006-03-11 16:27:42.000000000 +0100
2+++ xserver/configure.ac 2006-03-11 16:46:51.000000000 +0100
3@@ -79,7 +79,7 @@
4 # tslib touchscreen driver
5 AC_CHECK_HEADERS([tslib.h])
6
7-REQUIRED_MODULES="randr render fixesext damageext xextensions xfont xproto xtrans xau"
8+REQUIRED_MODULES="randrproto renderproto fixesproto damageproto xextproto xfont xproto xtrans xau"
9
10 DEFAULT_FONT_PATH="/usr/lib/X11/fonts/misc,/usr/lib/X11/fonts/100dpi,/usr/lib/X11/fonts/75dpi"
11 DEFAULT_VENDOR_STRING="freedesktop.org"
12--- xserver.orig/dix/dispatch.c 2006-03-11 16:27:42.000000000 +0100
13+++ xserver/dix/dispatch.c 2006-03-11 16:30:59.000000000 +0100
14@@ -79,7 +79,6 @@
15 #endif
16
17 #include "windowstr.h"
18-#include "fontstruct.h"
19 #include "dixfontstr.h"
20 #include "gcstruct.h"
21 #include "selection.h"
22--- xserver.orig/dix/glyphcurs.c 2006-03-11 16:27:42.000000000 +0100
23+++ xserver/dix/glyphcurs.c 2006-03-11 16:31:57.000000000 +0100
24@@ -51,7 +51,6 @@
25 #include <config.h>
26 #endif
27 #include "misc.h"
28-#include "fontstruct.h"
29 #include "dixfontstr.h"
30 #include "scrnintstr.h"
31 #include "gcstruct.h"
32--- xserver.orig/dix/main.c 2006-03-11 16:27:42.000000000 +0100
33+++ xserver/dix/main.c 2006-03-11 16:32:05.000000000 +0100
34@@ -89,7 +89,6 @@
35 #include "colormap.h"
36 #include "colormapst.h"
37 #include "cursorstr.h"
38-#include "font.h"
39 #include "opaque.h"
40 #include "servermd.h"
41 #include "site.h"
42--- xserver.orig/dix/swaprep.c 2006-03-11 16:27:42.000000000 +0100
43+++ xserver/dix/swaprep.c 2006-03-11 16:32:24.000000000 +0100
44@@ -57,7 +57,7 @@
45 #include <X11/Xproto.h>
46 #include "misc.h"
47 #include "dixstruct.h"
48-#include "fontstruct.h"
49+#include "dixfont.h"
50 #include "scrnintstr.h"
51 #include "swaprep.h"
52 #include "globals.h"
53--- xserver.orig/dix/xpstubs.c 2006-03-11 16:27:42.000000000 +0100
54+++ xserver/dix/xpstubs.c 2006-03-11 16:32:34.000000000 +0100
55@@ -31,7 +31,7 @@
56 #include <config.h>
57 #endif
58 #include "misc.h"
59-#include "font.h"
60+#include "dixfont.h"
61
62 Bool
63 XpClientIsBitmapClient(ClientPtr client)
64--- xserver.orig/fb/fbglyph.c 2006-03-11 16:27:42.000000000 +0100
65+++ xserver/fb/fbglyph.c 2006-03-11 16:52:01.000000000 +0100
66@@ -26,7 +26,6 @@
67 #include <config.h>
68 #endif
69 #include "fb.h"
70-#include "fontstruct.h"
71 #include "dixfontstr.h"
72
73 Bool
74--- xserver.orig/hw/kdrive/epson/epson13806draw.c 2006-03-11 16:27:42.000000000 +0100
75+++ xserver/hw/kdrive/epson/epson13806draw.c 2006-03-11 16:34:56.000000000 +0100
76@@ -38,7 +38,6 @@
77 #include "pixmapstr.h"
78 #include "regionstr.h"
79 #include "mistruct.h"
80-#include "fontstruct.h"
81 #include "dixfontstr.h"
82 #include "fb.h"
83 #include "migc.h"
84--- xserver.orig/hw/kdrive/i810/i810draw.c 2006-03-11 16:27:42.000000000 +0100
85+++ xserver/hw/kdrive/i810/i810draw.c 2006-03-11 16:34:41.000000000 +0100
86@@ -51,7 +51,6 @@
87 #include "pixmapstr.h"
88 #include "regionstr.h"
89 #include "mistruct.h"
90-#include "fontstruct.h"
91 #include "dixfontstr.h"
92 #include "fb.h"
93 #include "migc.h"
94--- xserver.orig/hw/kdrive/src/kaa.c 2006-03-11 16:27:42.000000000 +0100
95+++ xserver/hw/kdrive/src/kaa.c 2006-03-11 16:35:39.000000000 +0100
96@@ -29,7 +29,6 @@
97 #endif
98 #include "kdrive.h"
99 #include "kaa.h"
100-#include "fontstruct.h"
101 #include "dixfontstr.h"
102
103 #define DEBUG_MIGRATE 0
104--- xserver.orig/include/dixfont.h 2006-03-11 16:27:42.000000000 +0100
105+++ xserver/include/dixfont.h 2006-03-11 16:43:25.000000000 +0100
106@@ -27,10 +27,10 @@
107 #define DIXFONT_H 1
108
109 #include "dix.h"
110-#include "font.h"
111-#include "fontconf.h"
112+#include <X11/fonts/font.h>
113+#include <X11/fonts/fontconf.h>
114 #include "closure.h"
115-#include "fontstruct.h"
116+#include <X11/fonts/fontstruct.h>
117
118 #define NullDIXFontProp ((DIXFontPropPtr)0)
119
120--- xserver.orig/include/dixfontstr.h 2006-03-11 16:27:42.000000000 +0100
121+++ xserver/include/dixfontstr.h 2006-03-11 16:43:31.000000000 +0100
122@@ -27,7 +27,6 @@
123
124 #include "servermd.h"
125 #include "dixfont.h"
126-#include "fontstruct.h"
127 #include "closure.h"
128 #define NEED_REPLIES
129 #include "X11/Xproto.h" /* for xQueryFontReply */
130--- xserver.orig/mi/mibstore.c 2006-03-11 16:27:42.000000000 +0100
131+++ xserver/mi/mibstore.c 2006-03-11 16:36:26.000000000 +0100
132@@ -57,7 +57,6 @@
133 #include "gcstruct.h"
134 #include "windowstr.h"
135 #include "pixmapstr.h"
136-#include "fontstruct.h"
137 #include "dixfontstr.h"
138 #include "dixstruct.h" /* For requestingClient */
139 #include "mi.h"
140--- xserver.orig/mi/miglblt.c 2006-03-11 16:27:42.000000000 +0100
141+++ xserver/mi/miglblt.c 2006-03-11 16:53:52.000000000 +0100
142@@ -55,7 +55,6 @@
143 #include <X11/Xmd.h>
144 #include <X11/Xproto.h>
145 #include "misc.h"
146-#include "fontstruct.h"
147 #include "dixfontstr.h"
148 #include "gcstruct.h"
149 #include "windowstr.h"
150--- xserver.orig/mi/mi.h 2006-03-11 16:27:42.000000000 +0100
151+++ xserver/mi/mi.h 2006-03-11 16:36:16.000000000 +0100
152@@ -54,7 +54,7 @@
153 #include "validate.h"
154 #include "window.h"
155 #include "gc.h"
156-#include "font.h"
157+#include "dixfont.h"
158 #include "input.h"
159 #include "cursor.h"
160
161--- xserver.orig/mi/miinitext.c 2006-03-11 16:27:42.000000000 +0100
162+++ xserver/mi/miinitext.c 2006-03-11 16:36:41.000000000 +0100
163@@ -54,6 +54,8 @@
164 #include "extension.h"
165 #include "micmap.h"
166 #include "xext.h"
167+#include "pixmap.h"
168+#include "gc.h"
169
170 #ifdef NOPEXEXT /* sleaze for Solaris cpp building XsunMono */
171 #undef PEXEXT
172--- xserver.orig/mi/mipolytext.c 2006-03-11 16:27:42.000000000 +0100
173+++ xserver/mi/mipolytext.c 2006-03-11 16:36:48.000000000 +0100
174@@ -63,7 +63,6 @@
175 #include <X11/Xproto.h>
176 #include "misc.h"
177 #include "gcstruct.h"
178-#include "fontstruct.h"
179 #include "dixfontstr.h"
180 #include "mi.h"
181
182--- xserver.orig/mi/misprite.c 2006-03-11 16:27:42.000000000 +0100
183+++ xserver/mi/misprite.c 2006-03-11 16:37:00.000000000 +0100
184@@ -42,7 +42,6 @@
185 # include "input.h"
186 # include "mi.h"
187 # include "cursorstr.h"
188-# include "font.h"
189 # include "scrnintstr.h"
190 # include "colormapst.h"
191 # include "windowstr.h"
192@@ -50,7 +49,6 @@
193 # include "mipointer.h"
194 # include "mispritest.h"
195 # include "dixfontstr.h"
196-# include "fontstruct.h"
197 #ifdef RENDER
198 # include "mipict.h"
199 #endif
200--- xserver.orig/miext/damage/damage.c 2006-03-11 16:27:42.000000000 +0100
201+++ xserver/miext/damage/damage.c 2006-03-11 16:37:17.000000000 +0100
202@@ -28,9 +28,7 @@
203 #include <X11/X.h>
204 #include "scrnintstr.h"
205 #include "windowstr.h"
206-#include "font.h"
207 #include "dixfontstr.h"
208-#include "fontstruct.h"
209 #include "mi.h"
210 #include "regionstr.h"
211 #include "globals.h"
212--- xserver.orig/miext/shadow/shadow.c 2006-03-11 16:27:42.000000000 +0100
213+++ xserver/miext/shadow/shadow.c 2006-03-11 16:38:13.000000000 +0100
214@@ -29,9 +29,7 @@
215 #include <X11/X.h>
216 #include "scrnintstr.h"
217 #include "windowstr.h"
218-#include "font.h"
219 #include "dixfontstr.h"
220-#include "fontstruct.h"
221 #include "mi.h"
222 #include "regionstr.h"
223 #include "globals.h"
224--- xserver.orig/miext/shadow/shalloc.c 2006-03-11 16:27:42.000000000 +0100
225+++ xserver/miext/shadow/shalloc.c 2006-03-11 16:38:25.000000000 +0100
226@@ -29,9 +29,7 @@
227 #include <X11/X.h>
228 #include "scrnintstr.h"
229 #include "windowstr.h"
230-#include "font.h"
231 #include "dixfontstr.h"
232-#include "fontstruct.h"
233 #include "mi.h"
234 #include "regionstr.h"
235 #include "globals.h"
236--- xserver.orig/miext/shadow/shpacked.c 2006-03-11 16:27:42.000000000 +0100
237+++ xserver/miext/shadow/shpacked.c 2006-03-11 16:38:33.000000000 +0100
238@@ -28,9 +28,7 @@
239 #include <X11/X.h>
240 #include "scrnintstr.h"
241 #include "windowstr.h"
242-#include "font.h"
243 #include "dixfontstr.h"
244-#include "fontstruct.h"
245 #include "mi.h"
246 #include "regionstr.h"
247 #include "globals.h"
248--- xserver.orig/miext/shadow/shplanar8.c 2006-03-11 16:27:42.000000000 +0100
249+++ xserver/miext/shadow/shplanar8.c 2006-03-11 16:38:44.000000000 +0100
250@@ -28,9 +28,7 @@
251 #include <X11/X.h>
252 #include "scrnintstr.h"
253 #include "windowstr.h"
254-#include "font.h"
255 #include "dixfontstr.h"
256-#include "fontstruct.h"
257 #include "mi.h"
258 #include "regionstr.h"
259 #include "globals.h"
260--- xserver.orig/miext/shadow/shplanar.c 2006-03-11 16:27:42.000000000 +0100
261+++ xserver/miext/shadow/shplanar.c 2006-03-11 16:38:39.000000000 +0100
262@@ -28,9 +28,7 @@
263 #include <X11/X.h>
264 #include "scrnintstr.h"
265 #include "windowstr.h"
266-#include "font.h"
267 #include "dixfontstr.h"
268-#include "fontstruct.h"
269 #include "mi.h"
270 #include "regionstr.h"
271 #include "globals.h"
272--- xserver.orig/miext/shadow/shrotate.c 2006-03-11 16:27:42.000000000 +0100
273+++ xserver/miext/shadow/shrotate.c 2006-03-11 16:38:56.000000000 +0100
274@@ -28,9 +28,7 @@
275 #include <X11/X.h>
276 #include "scrnintstr.h"
277 #include "windowstr.h"
278-#include "font.h"
279 #include "dixfontstr.h"
280-#include "fontstruct.h"
281 #include "mi.h"
282 #include "regionstr.h"
283 #include "globals.h"
284--- xserver.orig/miext/shadow/shrotpack.h 2006-03-11 16:27:42.000000000 +0100
285+++ xserver/miext/shadow/shrotpack.h 2006-03-11 16:39:02.000000000 +0100
286@@ -30,9 +30,7 @@
287 #include <X11/X.h>
288 #include "scrnintstr.h"
289 #include "windowstr.h"
290-#include "font.h"
291 #include "dixfontstr.h"
292-#include "fontstruct.h"
293 #include "mi.h"
294 #include "regionstr.h"
295 #include "globals.h"
296--- xserver.orig/miext/shadow/shrotpackYX.h 2006-03-11 16:27:42.000000000 +0100
297+++ xserver/miext/shadow/shrotpackYX.h 2006-03-11 16:39:08.000000000 +0100
298@@ -25,9 +25,7 @@
299 #include <X11/X.h>
300 #include "scrnintstr.h"
301 #include "windowstr.h"
302-#include "font.h"
303 #include "dixfontstr.h"
304-#include "fontstruct.h"
305 #include "mi.h"
306 #include "regionstr.h"
307 #include "globals.h"
308--- xserver.orig/os/xstrans.c 2006-03-11 16:27:42.000000000 +0100
309+++ xserver/os/xstrans.c 2006-03-11 16:39:31.000000000 +0100
310@@ -27,4 +27,4 @@
311
312 #include "config.h"
313
314-#include <transport.c>
315+#include <X11/Xtrans/transport.c>
316--- xserver.orig/os/xstrans.h 2006-03-11 16:27:42.000000000 +0100
317+++ xserver/os/xstrans.h 2006-03-11 16:39:37.000000000 +0100
318@@ -25,4 +25,4 @@
319 #define XSERV_t
320 #define TRANS_SERVER
321
322-#include <Xtrans.h>
323+#include <X11/Xtrans/Xtrans.h>
324--- xserver.orig/Xext/shmint.h 2006-03-11 16:27:42.000000000 +0100
325+++ xserver/Xext/shmint.h 2006-03-11 16:29:24.000000000 +0100
326@@ -32,27 +32,6 @@
327 #include "pixmap.h"
328 #include "gc.h"
329
330-typedef struct _ShmFuncs {
331- PixmapPtr (* CreatePixmap)(ScreenPtr pScreen,
332- int width,
333- int height,
334- int depth,
335- char *addr);
336- void (* PutImage)(DrawablePtr dst,
337- GCPtr pGC,
338- int depth,
339- unsigned int format,
340- int w,
341- int h,
342- int sx,
343- int sy,
344- int sw,
345- int sh,
346- int dx,
347- int dy,
348- char *data);
349-} ShmFuncs, *ShmFuncsPtr;
350-
351 void
352 ShmRegisterFuncs(ScreenPtr pScreen, ShmFuncsPtr funcs);
353
354--- xserver.orig/Xext/syncint.h 2006-03-11 16:27:42.000000000 +0100
355+++ xserver/Xext/syncint.h 2006-03-11 16:30:16.000000000 +0100
356@@ -48,7 +48,7 @@
357 PERFORMANCE OF THIS SOFTWARE.
358
359 ******************************************************************/
360-/* $Id: syncint.h,v 3.1 2003-11-02 19:56:10 keithp Exp $ */
361+/* $Id: syncint.h,v 3.2 2005-04-20 18:42:31 clee Exp $ */
362
363 #ifndef _SYNCINT_H_
364 #define _SYNCINT_H_
365@@ -57,26 +57,10 @@
366
367 #define CARD64 XSyncValue /* XXX temporary! need real 64 bit values for Alpha */
368
369-typedef struct _SyncCounter {
370- ClientPtr client; /* Owning client. 0 for system counters */
371- XSyncCounter id; /* resource ID */
372- CARD64 value; /* counter value */
373- struct _SyncTriggerList *pTriglist; /* list of triggers */
374- Bool beingDestroyed; /* in process of going away */
375- struct _SysCounterInfo *pSysCounterInfo; /* NULL if not a system counter */
376-} SyncCounter;
377-
378 /*
379 * The System Counter interface
380 */
381
382-typedef enum {
383- XSyncCounterNeverChanges,
384- XSyncCounterNeverIncreases,
385- XSyncCounterNeverDecreases,
386- XSyncCounterUnrestricted
387-} SyncCounterType;
388-
389 typedef void
390 (*SyncQueryValueProcPtr) (pointer pCounter,
391 CARD64 *freshvalue);
392@@ -86,16 +70,6 @@
393 CARD64 *lessthan,
394 CARD64 *greaterthan);
395
396-typedef struct _SysCounterInfo {
397- char *name;
398- CARD64 resolution;
399- CARD64 bracket_greater;
400- CARD64 bracket_less;
401- SyncCounterType counterType; /* how can this counter change */
402- SyncQueryValueProcPtr QueryValue;
403- SyncBracketValuesProcPtr BracketValues;
404-} SysCounterInfo;
405-
406 struct _SyncTrigger;
407
408 typedef Bool
409@@ -108,55 +82,6 @@
410 typedef void
411 (*SyncCounterDestroyedProcPtr) (struct _SyncTrigger *pTrigger);
412
413-typedef struct _SyncTrigger {
414- SyncCounter *pCounter;
415- CARD64 wait_value; /* wait value */
416- unsigned int value_type; /* Absolute or Relative */
417- unsigned int test_type; /* transition or Comparision type */
418- CARD64 test_value; /* trigger event threshold value */
419- SyncCheckTriggerProcPtr CheckTrigger;
420- SyncTriggerFiredProcPtr TriggerFired;
421- SyncCounterDestroyedProcPtr CounterDestroyed;
422-} SyncTrigger;
423-
424-typedef struct _SyncTriggerList {
425- SyncTrigger *pTrigger;
426- struct _SyncTriggerList *next;
427-} SyncTriggerList;
428-
429-typedef struct _SyncAlarmClientList {
430- ClientPtr client;
431- XID delete_id;
432- struct _SyncAlarmClientList *next;
433-} SyncAlarmClientList;
434-
435-typedef struct _SyncAlarm {
436- SyncTrigger trigger;
437- ClientPtr client;
438- XSyncAlarm alarm_id;
439- CARD64 delta;
440- int events;
441- int state;
442- SyncAlarmClientList *pEventClients;
443-} SyncAlarm;
444-
445-typedef struct {
446- ClientPtr client;
447- CARD32 delete_id;
448- int num_waitconditions;
449-} SyncAwaitHeader;
450-
451-typedef struct {
452- SyncTrigger trigger;
453- CARD64 event_threshold;
454- SyncAwaitHeader *pHeader;
455-} SyncAwait;
456-
457-typedef union {
458- SyncAwaitHeader header;
459- SyncAwait await;
460-} SyncAwaitUnion;
461-
462 pointer
463 SyncCreateSystemCounter(char *name,
464 CARD64 inital_value,
diff --git a/meta/packages/xserver/xserver-kdrive/devfs.patch b/meta/packages/xserver/xserver-kdrive/devfs.patch
new file mode 100644
index 0000000000..a6238126c0
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/devfs.patch
@@ -0,0 +1,47 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- xserver/hw/kdrive/linux/linux.c~devfs
7+++ xserver/hw/kdrive/linux/linux.c
8@@ -82,10 +82,10 @@
9 vtno = kdVirtualTerminal;
10 else
11 {
12- if ((fd = open("/dev/tty0",O_WRONLY,0)) < 0)
13+ if ((fd = open("/dev/vc/0",O_WRONLY,0)) < 0)
14 {
15 FatalError(
16- "LinuxInit: Cannot open /dev/tty0 (%s)\n",
17+ "LinuxInit: Cannot open /dev/tty/0 (%s)\n",
18 strerror(errno));
19 }
20 if ((ioctl(fd, VT_OPENQRY, &vtno) < 0) ||
21@@ -96,7 +96,7 @@
22 }
23 close(fd);
24
25- sprintf(vtname,"/dev/tty%d",vtno); /* /dev/tty1-64 */
26+ sprintf(vtname,"/dev/vc/%d",vtno); /* /dev/tty1-64 */
27
28 if ((LinuxConsoleFd = open(vtname, O_RDWR|O_NDELAY, 0)) < 0)
29 {
30@@ -113,7 +113,7 @@
31 *
32 * Why is this needed?
33 */
34- LinuxCheckChown ("/dev/tty0");
35+ LinuxCheckChown ("/dev/vc/0");
36 /*
37 * Linux doesn't switch to an active vt after the last close of a vt,
38 * so we do this ourselves by remembering which is active now.
39@@ -453,7 +453,7 @@
40 activeVT = -1;
41 }
42 close(LinuxConsoleFd); /* make the vt-manager happy */
43- fd = open ("/dev/tty0", O_RDWR|O_NDELAY, 0);
44+ fd = open ("/dev/vc/0", O_RDWR|O_NDELAY, 0);
45 if (fd >= 0)
46 {
47 memset (&vts, '\0', sizeof (vts)); /* valgrind */
diff --git a/meta/packages/xserver/xserver-kdrive/disable-apm.patch b/meta/packages/xserver/xserver-kdrive/disable-apm.patch
new file mode 100644
index 0000000000..bd8842721b
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/disable-apm.patch
@@ -0,0 +1,20 @@
1--- xserver/hw/kdrive/linux/linux.c.orig 2005-04-23 15:56:13.988849232 +0000
2+++ xserver/hw/kdrive/linux/linux.c 2005-04-23 15:57:05.001094192 +0000
3@@ -342,7 +342,7 @@
4 /*
5 * Open the APM driver
6 */
7- LinuxApmFd = open ("/dev/apm_bios", 2);
8+ /*LinuxApmFd = open ("/dev/apm_bios", 2);
9 if (LinuxApmFd < 0 && errno == ENOENT)
10 LinuxApmFd = open ("/dev/misc/apm_bios", 2);
11 if (LinuxApmFd >= 0)
12@@ -352,7 +352,7 @@
13 RegisterBlockAndWakeupHandlers (LinuxApmBlock, LinuxApmWakeup, 0);
14 AddEnabledDevice (LinuxApmFd);
15 }
16-
17+ */
18 /*
19 * now get the VT
20 */
diff --git a/meta/packages/xserver/xserver-kdrive/epson.patch b/meta/packages/xserver/xserver-kdrive/epson.patch
new file mode 100644
index 0000000000..07009bdc40
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/epson.patch
@@ -0,0 +1,11 @@
1--- xserver.orig/hw/kdrive/epson/epson13806stub.c 2004-10-20 10:20:51.000000000 +0200
2+++ xserver/hw/kdrive/epson/epson13806stub.c 2005-03-17 14:38:22.000000000 +0100
3@@ -55,7 +55,7 @@
4 {
5 KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
6 #ifdef TOUCHSCREEN
7- KdInitTouchScreen (&TsFuncs);
8+ KdAddMouseDriver (&TsFuncs);
9 #endif
10 }
11
diff --git a/meta/packages/xserver/xserver-kdrive/faster-rotated.patch b/meta/packages/xserver/xserver-kdrive/faster-rotated.patch
new file mode 100644
index 0000000000..eaf7ddec36
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/faster-rotated.patch
@@ -0,0 +1,241 @@
1Index: xserver/miext/shadow/shrotate.c
2===================================================================
3RCS file: /scratch/openbsd/cvs/XF4/xc/programs/Xserver/miext/shadow/shrotate.c,v
4retrieving revision 1.2
5diff -u -r1.2 shrotate.c
6--- xserver/miext/shadow/shrotate.c 3 Nov 2004 00:09:54 -0000 1.2
7+++ xserver/miext/shadow/shrotate.c 20 Sep 2005 23:07:58 -0000
8@@ -45,6 +45,106 @@
9 #define TOP_TO_BOTTOM 2
10 #define BOTTOM_TO_TOP -2
11
12+
13+static void
14+shadowUpdateRotatePackedSubRectangle(shadowBufPtr pBuf,
15+ FbBits *shaLine, int shaFirstShift,
16+ int shaStepOverX, int shaStepOverY,
17+ int shaStepDownX, int shaStepDownY,
18+ int shaBpp, FbBits shaMask,
19+ ScreenPtr pScreen,
20+ int scr_x1, int scr_y,
21+ int scr_h, int scr_w,
22+ int pixelsPerBits)
23+{
24+ FbBits *sha;
25+ int shaShift;
26+ int scr_x;
27+ int w;
28+
29+ /*
30+ * Copy the bits, always write across the physical frame buffer
31+ * to take advantage of write combining.
32+ */
33+ while (scr_h--)
34+ {
35+ int p;
36+ FbBits bits;
37+ FbBits *win;
38+ int i;
39+ CARD32 winSize;
40+
41+ sha = shaLine;
42+ shaShift = shaFirstShift;
43+ w = scr_w;
44+ scr_x = scr_x1 * shaBpp >> FB_SHIFT;
45+
46+ while (w)
47+ {
48+ /*
49+ * Map some of this line
50+ */
51+ win = (FbBits *) (*pBuf->window) (pScreen,
52+ scr_y,
53+ scr_x << 2,
54+ SHADOW_WINDOW_WRITE,
55+ &winSize,
56+ pBuf->closure);
57+ i = (winSize >> 2);
58+ if (i > w)
59+ i = w;
60+ w -= i;
61+ scr_x += i;
62+ /*
63+ * Copy the portion of the line mapped
64+ */
65+ while (i--)
66+ {
67+ bits = 0;
68+ p = pixelsPerBits;
69+ /*
70+ * Build one word of output from multiple inputs
71+ */
72+ while (p--)
73+ {
74+ bits = FbScrLeft(bits, shaBpp);
75+ bits |= FbScrRight (*sha, shaShift) & shaMask;
76+
77+ shaShift -= shaStepOverX;
78+ if (shaShift >= FB_UNIT)
79+ {
80+ shaShift -= FB_UNIT;
81+ sha--;
82+ }
83+ else if (shaShift < 0)
84+ {
85+ shaShift += FB_UNIT;
86+ sha++;
87+ }
88+ sha += shaStepOverY;
89+ }
90+ *win++ = bits;
91+ }
92+ }
93+ scr_y++;
94+ shaFirstShift -= shaStepDownX;
95+ if (shaFirstShift >= FB_UNIT)
96+ {
97+ shaFirstShift -= FB_UNIT;
98+ shaLine--;
99+ }
100+ else if (shaFirstShift < 0)
101+ {
102+ shaFirstShift += FB_UNIT;
103+ shaLine++;
104+ }
105+ shaLine += shaStepDownY;
106+ }
107+}
108+
109+#define BLOCKSIZE_HEIGHT 32
110+#define BLOCKSIZE_WIDTH 32
111+
112 void
113 shadowUpdateRotatePacked (ScreenPtr pScreen,
114 shadowBufPtr pBuf)
115@@ -61,7 +161,6 @@
116 int sha_x1 = 0, sha_y1 = 0;
117 int scr_x1 = 0, scr_x2 = 0, scr_y1 = 0, scr_y2 = 0, scr_w, scr_h;
118 int scr_x, scr_y;
119- int w;
120 int pixelsPerBits;
121 int pixelsMask;
122 FbStride shaStepOverY = 0, shaStepDownY = 0;
123@@ -221,86 +320,46 @@
124 ((sha_x1 * shaBpp) >> FB_SHIFT));
125
126 /*
127- * Copy the bits, always write across the physical frame buffer
128- * to take advantage of write combining.
129+ * Copy in blocks of size BLOCKSIZE_WIDTH x BLOCKSIZE_HEIGHT
130+ * to reduce the number of cache misses when rotating 90 or
131+ * 270 degrees.
132 */
133- while (scr_h--)
134+ for (scr_y = scr_y1; scr_y < scr_y2; scr_y += BLOCKSIZE_HEIGHT)
135 {
136- int p;
137- FbBits bits;
138- FbBits *win;
139- int i;
140- CARD32 winSize;
141-
142 sha = shaLine;
143 shaShift = shaFirstShift;
144- w = scr_w;
145- scr_x = scr_x1 * shaBpp >> FB_SHIFT;
146
147- while (w)
148+ for (scr_x = scr_x1; scr_x < scr_x2; scr_x += BLOCKSIZE_WIDTH)
149 {
150- /*
151- * Map some of this line
152- */
153- win = (FbBits *) (*pBuf->window) (pScreen,
154- scr_y,
155- scr_x << 2,
156- SHADOW_WINDOW_WRITE,
157- &winSize,
158- pBuf->closure);
159- i = (winSize >> 2);
160- if (i > w)
161- i = w;
162- w -= i;
163- scr_x += i;
164- /*
165- * Copy the portion of the line mapped
166- */
167- while (i--)
168- {
169- bits = 0;
170- p = pixelsPerBits;
171- /*
172- * Build one word of output from multiple inputs
173- *
174- * Note that for 90/270 rotations, this will walk
175- * down the shadow hitting each scanline once.
176- * This is probably not very efficient.
177- */
178- while (p--)
179- {
180- bits = FbScrLeft(bits, shaBpp);
181- bits |= FbScrRight (*sha, shaShift) & shaMask;
182+ int h = BLOCKSIZE_HEIGHT;
183+ int w = BLOCKSIZE_WIDTH;
184
185- shaShift -= shaStepOverX;
186- if (shaShift >= FB_UNIT)
187- {
188- shaShift -= FB_UNIT;
189- sha--;
190- }
191- else if (shaShift < 0)
192- {
193- shaShift += FB_UNIT;
194- sha++;
195- }
196- sha += shaStepOverY;
197- }
198- *win++ = bits;
199- }
200- }
201- scr_y++;
202- shaFirstShift -= shaStepDownX;
203- if (shaFirstShift >= FB_UNIT)
204- {
205- shaFirstShift -= FB_UNIT;
206- shaLine--;
207- }
208- else if (shaFirstShift < 0)
209- {
210- shaFirstShift += FB_UNIT;
211- shaLine++;
212+ if (scr_y + h > scr_y2)
213+ h = scr_y2 - scr_y;
214+ if (scr_x + w > scr_x2)
215+ w = scr_x2 - scr_x;
216+ w = (w * shaBpp) >> FB_SHIFT;
217+
218+ shadowUpdateRotatePackedSubRectangle
219+ (pBuf,
220+ sha, shaShift,
221+ shaStepOverX, shaStepOverY,
222+ shaStepDownX, shaStepDownY,
223+ shaBpp, shaMask,
224+ pScreen,
225+ scr_x, scr_y,
226+ h, w,
227+ pixelsPerBits);
228+
229+ shaShift -= BLOCKSIZE_WIDTH * shaStepOverX;
230+ sha += BLOCKSIZE_WIDTH * shaStepOverY;
231+ sha -= (shaShift >> FB_SHIFT);
232+ shaShift &= FB_MASK;
233 }
234- shaLine += shaStepDownY;
235+ shaFirstShift -= BLOCKSIZE_HEIGHT * shaStepDownX;
236+ shaLine += BLOCKSIZE_HEIGHT * shaStepDownY;
237+ shaLine -= (shaFirstShift >> FB_SHIFT);
238+ shaFirstShift &= FB_MASK;
239 }
240 }
241 }
diff --git a/meta/packages/xserver/xserver-kdrive/fbdev-not-fix.patch b/meta/packages/xserver/xserver-kdrive/fbdev-not-fix.patch
new file mode 100644
index 0000000000..f87e7cc2cd
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/fbdev-not-fix.patch
@@ -0,0 +1,14 @@
1--- xserver/hw/kdrive/fbdev/fbdev.c~ 2004-09-15 00:08:10.000000000 +0100
2+++ xserver/hw/kdrive/fbdev/fbdev.c 2004-11-13 17:47:02.000000000 +0000
3@@ -198,6 +198,11 @@
4 return FALSE;
5 }
6
7+ /* Re-get the "fixed" parameters since they might have changed */
8+ k = ioctl (priv->fd, FBIOGET_FSCREENINFO, &priv->fix);
9+ if (k < 0)
10+ perror ("FBIOGET_FSCREENINFO");
11+
12 /* Now get the new screeninfo */
13 ioctl (priv->fd, FBIOGET_VSCREENINFO, &priv->var);
14 depth = priv->var.bits_per_pixel;
diff --git a/meta/packages/xserver/xserver-kdrive/kdrive-evdev.patch b/meta/packages/xserver/xserver-kdrive/kdrive-evdev.patch
new file mode 100644
index 0000000000..2dc22bf50e
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/kdrive-evdev.patch
@@ -0,0 +1,515 @@
1# Kdrive evdev support patch, posted by Ander Conselvan de Oliveira at
2# http://lists.freedesktop.org/archives/xorg/2005-December/011635.html
3diff -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
4--- xserver.original/hw/kdrive/linux/evdev.c 2005-12-16 10:36:05.000000000 -0200
5+++ xserver/hw/kdrive/linux/evdev.c 2005-12-16 10:40:51.077410192 -0200
6@@ -31,9 +31,11 @@
7 #include <X11/X.h>
8 #include <X11/Xproto.h>
9 #include <X11/Xpoll.h>
10+#include <X11/keysym.h>
11 #include "inputstr.h"
12 #include "scrnintstr.h"
13 #include "kdrive.h"
14+#include "kkeymap.h"
15
16 #define NUM_EVENTS 128
17 #define ABS_UNSET -65535
18@@ -105,9 +107,10 @@
19 {
20 KdMouseInfo *mi = closure;
21 Kevdev *ke = mi->driver;
22- int i;
23+ int i, j;
24 struct input_event events[NUM_EVENTS];
25 int n;
26+ int flags;
27
28 n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
29 if (n <= 0)
30@@ -115,22 +118,64 @@
31 n /= sizeof (struct input_event);
32 for (i = 0; i < n; i++)
33 {
34+ flags = KD_MOUSE_DELTA | kdMouseInfo->buttonState;
35 switch (events[i].type) {
36 case EV_SYN:
37 break;
38 case EV_KEY:
39- EvdevMotion (mi);
40- ASSIGNBIT(ke->key,events[i].code, events[i].value);
41- if (events[i].code < 0x100)
42- ErrorF ("key %d %d\n", events[i].code, events[i].value);
43- else
44- ErrorF ("key 0x%x %d\n", events[i].code, events[i].value);
45+ if (events[i].code >= BTN_MOUSE && events[i].code < BTN_JOYSTICK) {
46+ switch (events[i].code) {
47+ case BTN_LEFT:
48+ if (events[i].value == 1)
49+ flags |= KD_BUTTON_1;
50+ else
51+ flags &= ~KD_BUTTON_1;
52+ break;
53+ case BTN_MIDDLE:
54+ if (events[i].value == 1)
55+ flags |= KD_BUTTON_2;
56+ else
57+ flags &= ~KD_BUTTON_2;
58+ break;
59+ case BTN_RIGHT:
60+ if (events[i].value == 1)
61+ flags |= KD_BUTTON_3;
62+ else
63+ flags &= ~KD_BUTTON_3;
64+ break;
65+ default:
66+ /* Unknow button */
67+ break;
68+ }
69+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
70+ }
71 break;
72 case EV_REL:
73- ke->rel[events[i].code] += events[i].value;
74+ if (events[i].code == REL_X) {
75+ KdEnqueueMouseEvent (kdMouseInfo, flags, events[i].value, 0);
76+ }
77+ else if (events[i].code == REL_Y) {
78+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, events[i].value);
79+ }
80+ else if (events[i].code == REL_WHEEL) {
81+ for (j = 0; j < abs (events[i].value); j++) {
82+ if (events[i].value > 0)
83+ flags |= KD_BUTTON_4;
84+ else
85+ flags |= KD_BUTTON_5;
86+
87+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
88+
89+ if (events[i].value > 0)
90+ flags &= ~KD_BUTTON_4;
91+ else
92+ flags &= ~KD_BUTTON_5;
93+
94+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
95+ } /* events[i].code == REL_WHEEL */
96+ }
97 break;
98 case EV_ABS:
99- ke->abs[events[i].code] = events[i].value;
100 break;
101 }
102 }
103@@ -173,6 +218,12 @@
104 fd = open (kdefaultEvdev[i], 2);
105 if (fd >= 0)
106 {
107+ if (ioctl (fd, EVIOCGRAB, 1) < 0)
108+ {
109+ close (fd);
110+ continue;
111+ }
112+
113 mi->name = KdSaveString (kdefaultEvdev[i]);
114 break;
115 }
116@@ -287,7 +338,319 @@
117 EvdevFini,
118 };
119
120-#if 0
121+/* Keyboard */
122+
123+int kbd_fd = -1;
124+int EvdevInputType = 0;
125+
126+KeySym evdevKeymap[(194 - 1 + 1) * 2] = {
127+/* These are directly mapped from DOS scanset 0 */
128+/* 1 8 */ XK_Escape, NoSymbol,
129+/* 2 9 */ XK_1, XK_exclam,
130+/* 3 10 */ XK_2, XK_at,
131+/* 4 11 */ XK_3, XK_numbersign,
132+/* 5 12 */ XK_4, XK_dollar,
133+/* 6 13 */ XK_5, XK_percent,
134+/* 7 14 */ XK_6, XK_asciicircum,
135+/* 8 15 */ XK_7, XK_ampersand,
136+/* 9 16 */ XK_8, XK_asterisk,
137+/* 10 17 */ XK_9, XK_parenleft,
138+/* 11 18 */ XK_0, XK_parenright,
139+/* 12 19 */ XK_minus, XK_underscore,
140+/* 13 20 */ XK_equal, XK_plus,
141+/* 14 21 */ XK_BackSpace, NoSymbol,
142+/* 15 22 */ XK_Tab, NoSymbol,
143+/* 16 23 */ XK_Q, NoSymbol,
144+/* 17 24 */ XK_W, NoSymbol,
145+/* 18 25 */ XK_E, NoSymbol,
146+/* 19 26 */ XK_R, NoSymbol,
147+/* 20 27 */ XK_T, NoSymbol,
148+/* 21 28 */ XK_Y, NoSymbol,
149+/* 22 29 */ XK_U, NoSymbol,
150+/* 23 30 */ XK_I, NoSymbol,
151+/* 24 31 */ XK_O, NoSymbol,
152+/* 25 32 */ XK_P, NoSymbol,
153+/* 26 33 */ XK_bracketleft, XK_braceleft,
154+/* 27 34 */ XK_bracketright, XK_braceright,
155+/* 28 35 */ XK_Return, NoSymbol,
156+/* 29 36 */ XK_Control_L, NoSymbol,
157+/* 30 37 */ XK_A, NoSymbol,
158+/* 31 38 */ XK_S, NoSymbol,
159+/* 32 39 */ XK_D, NoSymbol,
160+/* 33 40 */ XK_F, NoSymbol,
161+/* 34 41 */ XK_G, NoSymbol,
162+/* 35 42 */ XK_H, NoSymbol,
163+/* 36 43 */ XK_J, NoSymbol,
164+/* 37 44 */ XK_K, NoSymbol,
165+/* 38 45 */ XK_L, NoSymbol,
166+/* 39 46 */ XK_semicolon, XK_colon,
167+/* 40 47 */ XK_apostrophe, XK_quotedbl,
168+/* 41 48 */ XK_grave, XK_asciitilde,
169+/* 42 49 */ XK_Shift_L, NoSymbol,
170+/* 43 50 */ XK_backslash, XK_bar,
171+/* 44 51 */ XK_Z, NoSymbol,
172+/* 45 52 */ XK_X, NoSymbol,
173+/* 46 53 */ XK_C, NoSymbol,
174+/* 47 54 */ XK_V, NoSymbol,
175+/* 48 55 */ XK_B, NoSymbol,
176+/* 49 56 */ XK_N, NoSymbol,
177+/* 50 57 */ XK_M, NoSymbol,
178+/* 51 58 */ XK_comma, XK_less,
179+/* 52 59 */ XK_period, XK_greater,
180+/* 53 60 */ XK_slash, XK_question,
181+/* 54 61 */ XK_Shift_R, NoSymbol,
182+/* 55 62 */ XK_KP_Multiply, NoSymbol,
183+/* 56 63 */ XK_Alt_L, XK_Meta_L,
184+/* 57 64 */ XK_space, NoSymbol,
185+/* 58 65 */ XK_Caps_Lock, NoSymbol,
186+/* 59 66 */ XK_F1, NoSymbol,
187+/* 60 67 */ XK_F2, NoSymbol,
188+/* 61 68 */ XK_F3, NoSymbol,
189+/* 62 69 */ XK_F4, NoSymbol,
190+/* 63 70 */ XK_F5, NoSymbol,
191+/* 64 71 */ XK_F6, NoSymbol,
192+/* 65 72 */ XK_F7, NoSymbol,
193+/* 66 73 */ XK_F8, NoSymbol,
194+/* 67 74 */ XK_F9, NoSymbol,
195+/* 68 75 */ XK_F10, NoSymbol,
196+/* 69 76 */ XK_Break, XK_Pause,
197+/* 70 77 */ XK_Scroll_Lock, NoSymbol,
198+/* 71 78 */ XK_KP_Home, XK_KP_7,
199+/* 72 79 */ XK_KP_Up, XK_KP_8,
200+/* 73 80 */ XK_KP_Page_Up, XK_KP_9,
201+/* 74 81 */ XK_KP_Subtract, NoSymbol,
202+/* 75 82 */ XK_KP_Left, XK_KP_4,
203+/* 76 83 */ XK_KP_5, NoSymbol,
204+/* 77 84 */ XK_KP_Right, XK_KP_6,
205+/* 78 85 */ XK_KP_Add, NoSymbol,
206+/* 79 86 */ XK_KP_End, XK_KP_1,
207+/* 80 87 */ XK_KP_Down, XK_KP_2,
208+/* 81 88 */ XK_KP_Page_Down, XK_KP_3,
209+/* 82 89 */ XK_KP_Insert, XK_KP_0,
210+/* 83 90 */ XK_KP_Delete, XK_KP_Decimal,
211+/* 84 91 */ NoSymbol, NoSymbol,
212+/* 85 92 */ NoSymbol, NoSymbol,
213+/* 86 93 */ NoSymbol, NoSymbol,
214+/* 87 94 */ XK_F11, NoSymbol,
215+/* 88 95 */ XK_F12, NoSymbol,
216+
217+/* These are remapped from the extended set (using ExtendMap) */
218+
219+/* 89 96 */ XK_Control_R, NoSymbol,
220+/* 90 97 */ XK_KP_Enter, NoSymbol,
221+/* 91 98 */ XK_KP_Divide, NoSymbol,
222+/* 92 99 */ XK_Sys_Req, XK_Print,
223+/* 93 100 */ XK_Alt_R, XK_Meta_R,
224+/* 94 101 */ XK_Num_Lock, NoSymbol,
225+/* 95 102 */ XK_Home, NoSymbol,
226+/* 96 103 */ XK_Up, NoSymbol,
227+/* 97 104 */ XK_Page_Up, NoSymbol,
228+/* 98 105 */ XK_Left, NoSymbol,
229+/* 99 106 */ XK_Right, NoSymbol,
230+/* 100 107 */ XK_End, NoSymbol,
231+/* 101 108 */ XK_Down, NoSymbol,
232+/* 102 109 */ XK_Page_Down, NoSymbol,
233+/* 103 110 */ XK_Insert, NoSymbol,
234+/* 104 111 */ XK_Delete, NoSymbol,
235+/* 105 112 */ XK_Super_L, NoSymbol,
236+/* 106 113 */ XK_Super_R, NoSymbol,
237+/* 107 114 */ XK_Menu, NoSymbol,
238+/* 108 115 */ NoSymbol, NoSymbol,
239+/* 109 116 */ NoSymbol, NoSymbol,
240+/* 110 117 */ NoSymbol, NoSymbol,
241+/* 111 118 */ NoSymbol, NoSymbol,
242+/* 112 119 */ NoSymbol, NoSymbol,
243+
244+/* 113 120 */ NoSymbol, NoSymbol,
245+/* 114 121 */ NoSymbol, NoSymbol,
246+/* 115 122 */ NoSymbol, NoSymbol,
247+/* 116 123 */ NoSymbol, NoSymbol,
248+/* 117 124 */ NoSymbol, NoSymbol,
249+/* 118 125 */ NoSymbol, NoSymbol,
250+/* 119 126 */ NoSymbol, NoSymbol,
251+/* 120 127 */ NoSymbol, NoSymbol,
252+/* 121 128 */ NoSymbol, NoSymbol,
253+/* 122 129 */ NoSymbol, NoSymbol,
254+/* 123 130 */ NoSymbol, NoSymbol,
255+/* 124 131 */ NoSymbol, NoSymbol,
256+/* 125 132 */ NoSymbol, NoSymbol,
257+/* 126 133 */ NoSymbol, NoSymbol,
258+/* 127 134 */ NoSymbol, NoSymbol,
259+/* 128 135 */ NoSymbol, NoSymbol,
260+/* 129 136 */ NoSymbol, NoSymbol,
261+/* 130 137 */ NoSymbol, NoSymbol,
262+/* 131 138 */ NoSymbol, NoSymbol,
263+/* 132 139 */ NoSymbol, NoSymbol,
264+/* 133 140 */ NoSymbol, NoSymbol,
265+/* 134 141 */ NoSymbol, NoSymbol,
266+/* 135 142 */ NoSymbol, NoSymbol,
267+/* 136 143 */ NoSymbol, NoSymbol,
268+/* 137 144 */ NoSymbol, NoSymbol,
269+/* 138 145 */ NoSymbol, NoSymbol,
270+/* 139 146 */ NoSymbol, NoSymbol,
271+/* 140 147 */ NoSymbol, NoSymbol,
272+/* 141 148 */ NoSymbol, NoSymbol,
273+/* 142 149 */ NoSymbol, NoSymbol,
274+/* 143 150 */ NoSymbol, NoSymbol,
275+/* 144 151 */ NoSymbol, NoSymbol,
276+/* 145 152 */ NoSymbol, NoSymbol,
277+/* 146 153 */ NoSymbol, NoSymbol,
278+/* 147 154 */ NoSymbol, NoSymbol,
279+/* 148 155 */ NoSymbol, NoSymbol,
280+/* 149 156 */ NoSymbol, NoSymbol,
281+/* 150 157 */ NoSymbol, NoSymbol,
282+/* 151 158 */ NoSymbol, NoSymbol,
283+/* 152 159 */ NoSymbol, NoSymbol,
284+/* 153 160 */ NoSymbol, NoSymbol,
285+/* 154 161 */ NoSymbol, NoSymbol,
286+/* 155 162 */ NoSymbol, NoSymbol,
287+/* 156 163 */ NoSymbol, NoSymbol,
288+/* 157 164 */ NoSymbol, NoSymbol,
289+/* 158 165 */ NoSymbol, NoSymbol,
290+/* 159 166 */ NoSymbol, NoSymbol,
291+/* 160 167 */ NoSymbol, NoSymbol,
292+/* 161 168 */ NoSymbol, NoSymbol,
293+/* 162 169 */ NoSymbol, NoSymbol,
294+/* 163 170 */ NoSymbol, NoSymbol,
295+/* 164 171 */ NoSymbol, NoSymbol,
296+/* 165 172 */ NoSymbol, NoSymbol,
297+/* 166 173 */ NoSymbol, NoSymbol,
298+/* 167 174 */ NoSymbol, NoSymbol,
299+/* 168 175 */ NoSymbol, NoSymbol,
300+/* 169 176 */ NoSymbol, NoSymbol,
301+/* 170 177 */ NoSymbol, NoSymbol,
302+/* 171 178 */ NoSymbol, NoSymbol,
303+/* 172 179 */ NoSymbol, NoSymbol,
304+/* 173 180 */ NoSymbol, NoSymbol,
305+/* 174 181 */ NoSymbol, NoSymbol,
306+/* 175 182 */ NoSymbol, NoSymbol,
307+/* 176 183 */ NoSymbol, NoSymbol,
308+/* 177 184 */ NoSymbol, NoSymbol,
309+/* 178 185 */ NoSymbol, NoSymbol,
310+/* 179 186 */ NoSymbol, NoSymbol,
311+/* 180 187 */ NoSymbol, NoSymbol,
312+/* 181 188 */ NoSymbol, NoSymbol,
313+/* 182 189 */ NoSymbol, NoSymbol,
314+/* 183 190 */ NoSymbol, NoSymbol,
315+/* 184 191 */ NoSymbol, NoSymbol,
316+/* 185 192 */ NoSymbol, NoSymbol,
317+/* 186 193 */ NoSymbol, NoSymbol,
318+/* 187 194 */ NoSymbol, NoSymbol,
319+/* 188 195 */ NoSymbol, NoSymbol,
320+/* 189 196 */ NoSymbol, NoSymbol,
321+/* 190 197 */ NoSymbol, NoSymbol,
322+/* 191 198 */ NoSymbol, NoSymbol,
323+/* 192 199 */ NoSymbol, NoSymbol,
324+/* 193 200 */ NoSymbol, NoSymbol,
325+/* 194 201 */ NoSymbol, NoSymbol,
326+};
327+
328+static void
329+EvdevKbdRead (int fd, void *closure)
330+{
331+ int i, n;
332+ struct input_event events[NUM_EVENTS];
333+
334+ n = read (fd, &events, NUM_EVENTS * sizeof (struct input_event));
335+ if (n <= 0)
336+ return;
337+
338+ n /= sizeof (struct input_event);
339+
340+ for (i = 0; i < n; i++)
341+ {
342+ if (events[i].type == EV_KEY)
343+ KdEnqueueKeyboardEvent (events[i].code, !events[i].value);
344+ }
345+}
346+
347+static void
348+EvdevKbdLoad (void)
349+{
350+ kdMinScanCode = 0;
351+ kdMaxScanCode = 193;
352+ kdKeymapWidth = 2;
353+ memcpy (kdKeymap, evdevKeymap, sizeof (evdevKeymap));
354+}
355+
356+static int
357+EvdevKbdInit (void)
358+{
359+ int fd, i;
360+
361+ if (!EvdevInputType)
362+ EvdevInputType = KdAllocInputType ();
363+
364+ if (!kdKeyboard)
365+ {
366+ for (i = 0; i < NUM_DEFAULT_EVDEV; i++)
367+ {
368+ fd = open (kdefaultEvdev[i], 2);
369+ if (fd >= 0)
370+ {
371+ kdKeyboard = KdSaveString (kdefaultEvdev[i]);
372+ break;
373+ }
374+ }
375+ }
376+ else
377+ {
378+ fd = open (kdKeyboard, O_RDWR);
379+ if (fd < 0)
380+ return FALSE;
381+ }
382+
383+ if (ioctl (fd, EVIOCGRAB, 1) < 0)
384+ {
385+ close (fd);
386+ return FALSE;
387+ }
388+
389+ if (!KdRegisterFd (EvdevInputType, fd, EvdevKbdRead, NULL))
390+ return FALSE;
391+
392+ kbd_fd = fd;
393+ return TRUE;
394+}
395+
396+static void
397+EvdevKbdFini (void)
398+{
399+}
400+
401+static void
402+EvdevKbdLeds (int leds)
403+{
404+ struct input_event event;
405+
406+ memset(&event, 0, sizeof(event));
407+
408+ event.type = EV_LED;
409+ event.code = LED_CAPSL;
410+ event.value = leds & (1 << 0) ? 1 : 0;
411+ write(kbd_fd, (char *) &event, sizeof(event));
412+
413+ event.type = EV_LED;
414+ event.code = LED_NUML;
415+ event.value = leds & (1 << 1) ? 1 : 0;
416+ write(kbd_fd, (char *) &event, sizeof(event));
417+
418+ event.type = EV_LED;
419+ event.code = LED_SCROLLL;
420+ event.value = leds & (1 << 2) ? 1 : 0;
421+ write(kbd_fd, (char *) &event, sizeof(event));
422+
423+ event.type = EV_LED;
424+ event.code = LED_COMPOSE;
425+ event.value = leds & (1 << 3) ? 1 : 0;
426+ write(kbd_fd, (char *) &event, sizeof(event));
427+}
428+
429+static void
430+EvdevKbdBell (int volume, int frequency, int duration)
431+{
432+}
433+
434 KdKeyboardFuncs LinuxEvdevKeyboardFuncs = {
435 EvdevKbdLoad,
436 EvdevKbdInit,
437@@ -296,4 +659,4 @@
438 EvdevKbdFini,
439 0,
440 };
441-#endif
442+
443diff -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
444--- xserver.original/hw/kdrive/src/kdrive.c 2005-12-16 10:36:07.000000000 -0200
445+++ xserver/hw/kdrive/src/kdrive.c 2005-12-16 10:37:09.000000000 -0200
446@@ -73,6 +73,7 @@
447 Bool kdEnabled;
448 int kdSubpixelOrder;
449 int kdVirtualTerminal = -1;
450+char *kdKeyboard = 0;
451 Bool kdSwitchPending;
452 char *kdSwitchCmd;
453 DDXPointRec kdOrigin;
454@@ -795,6 +796,14 @@
455 UseMsg ();
456 return 2;
457 }
458+ if (!strcmp (argv[i], "-keyboard"))
459+ {
460+ if ((i+1) < argc)
461+ kdKeyboard = argv[i+1];
462+ else
463+ UseMsg ();
464+ return 2;
465+ }
466 if (!strcmp (argv[i], "-rgba"))
467 {
468 if ((i+1) < argc)
469diff -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
470--- xserver.original/hw/kdrive/src/kdrive.h 2005-12-16 10:36:07.000000000 -0200
471+++ xserver/hw/kdrive/src/kdrive.h 2005-12-16 10:37:09.000000000 -0200
472@@ -416,6 +416,7 @@
473 extern Bool kdDisableZaphod;
474 extern Bool kdDontZap;
475 extern int kdVirtualTerminal;
476+extern char *kdKeyboard;
477 extern char *kdSwitchCmd;
478 extern KdOsFuncs *kdOsFuncs;
479
480@@ -769,7 +770,7 @@
481 ProcessInputEvents (void);
482
483 extern KdMouseFuncs LinuxMouseFuncs;
484-extern KdMouseFuncs LinuxEvdevFuncs;
485+extern KdMouseFuncs LinuxEvdevMouseFuncs;
486 extern KdMouseFuncs Ps2MouseFuncs;
487 extern KdMouseFuncs BusMouseFuncs;
488 extern KdMouseFuncs MsMouseFuncs;
489@@ -777,6 +778,7 @@
490 extern KdMouseFuncs TsFuncs;
491 #endif
492 extern KdKeyboardFuncs LinuxKeyboardFuncs;
493+extern KdKeyboardFuncs LinuxEvdevKeyboardFuncs;
494 extern KdOsFuncs LinuxFuncs;
495
496 extern KdMouseFuncs VxWorksMouseFuncs;
497diff -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
498--- xserver.original/hw/kdrive/src/kinput.c 2005-12-16 10:36:07.000000000 -0200
499+++ xserver/hw/kdrive/src/kinput.c 2005-12-16 10:37:09.000000000 -0200
500@@ -1300,6 +1300,7 @@
501 xE.u.u.type = KeyPress;
502 xE.u.u.detail = key_code;
503
504+#ifndef XKB
505 switch (KEYCOL1(key_code))
506 {
507 case XK_Num_Lock:
508@@ -1313,6 +1314,7 @@
509 else
510 xE.u.u.type = KeyPress;
511 }
512+#endif
513
514 /*
515 * Check pressed keys which are already down
diff --git a/meta/packages/xserver/xserver-kdrive/kdrive-use-evdev.patch b/meta/packages/xserver/xserver-kdrive/kdrive-use-evdev.patch
new file mode 100644
index 0000000000..d4f885ee26
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/kdrive-use-evdev.patch
@@ -0,0 +1,53 @@
1--- xserver/hw/kdrive/fbdev/fbinit.c~ 2006-01-31 17:09:33.000000000 +0100
2+++ xserver/hw/kdrive/fbdev/fbinit.c 2006-01-31 17:11:55.000000000 +0100
3@@ -28,6 +28,8 @@
4 #endif
5 #include <fbdev.h>
6
7+extern int use_evdev;
8+
9 void
10 InitCard (char *name)
11 {
12@@ -45,7 +47,10 @@
13 void
14 InitInput (int argc, char **argv)
15 {
16- KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
17+ if (use_evdev)
18+ KdInitInput (&LinuxEvdevMouseFuncs, &LinuxEvdevKeyboardFuncs);
19+ else
20+ KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
21 #ifdef TOUCHSCREEN
22 KdAddMouseDriver (&TsFuncs);
23 #endif
24--- xserver/hw/kdrive/src/kdrive.c.orig 2006-01-31 17:13:28.000000000 +0100
25+++ xserver/hw/kdrive/src/kdrive.c 2006-01-31 17:15:28.000000000 +0100
26@@ -44,6 +44,8 @@
27 #include "dpmsproc.h"
28 #endif
29
30+int use_evdev = 0;
31+
32 typedef struct _kdDepths {
33 CARD8 depth;
34 CARD8 bpp;
35@@ -687,6 +689,7 @@
36 ErrorF("-videoTest Start the server, pause momentarily and exit\n");
37 ErrorF("-origin X,Y Locates the next screen in the the virtual screen (Xinerama)\n");
38 ErrorF("-mouse path[,n] Filename of mouse device, n is number of buttons\n");
39+ ErrorF("-use-evdev Use Linux evdev input\n");
40 ErrorF("-switchCmd Command to execute on vt switch\n");
41 ErrorF("-nozap Don't terminate server on Ctrl+Alt+Backspace\n");
42 ErrorF("vtxx Use virtual terminal xx instead of the next available\n");
43@@ -796,6 +799,10 @@
44 UseMsg ();
45 return 2;
46 }
47+ if (!strcmp (argv[i], "-use-evdev"))
48+ {
49+ use_evdev = 1;
50+ }
51 if (!strcmp (argv[i], "-keyboard"))
52 {
53 if ((i+1) < argc)
diff --git a/meta/packages/xserver/xserver-kdrive/kmode.patch b/meta/packages/xserver/xserver-kdrive/kmode.patch
new file mode 100644
index 0000000000..5ad3e4e277
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/kmode.patch
@@ -0,0 +1,28 @@
1--- /tmp/kmode.c 2005-06-27 14:46:19.716843288 +0200
2+++ xserver/hw/kdrive/src/kmode.c 2005-06-27 14:46:30.070269328 +0200
3@@ -41,6 +41,11 @@
4 1, 11, 14, KdSyncNegative,
5 },
6
7+ { 240, 320, 64, 0,
8+ 0, 0, 0, KdSyncNegative,
9+ 0, 0, 0, KdSyncNegative,
10+ },
11+
12 /* Other VESA modes */
13 { 640, 350, 85, 31500, /* VESA */
14 32, 96, 192, KdSyncPositive, /* 26.413 */
15@@ -80,6 +85,13 @@
16 16, 48, 160, KdSyncNegative, /* 31.469 */
17 10, 33, 45, KdSyncNegative, /* 59.940 */
18 },
19+
20+
21+ { 480, 640, 60, 0, /* VESA */
22+ 0, 0, 0, KdSyncNegative, /* 31.469 */
23+ 0, 0, 0, KdSyncNegative, /* 59.940 */
24+ },
25+
26
27 /* 800x600 modes */
28 { 800, 600, 85, 56250, /* VESA */
diff --git a/meta/packages/xserver/xserver-kdrive/no-serial-probing.patch b/meta/packages/xserver/xserver-kdrive/no-serial-probing.patch
new file mode 100644
index 0000000000..35ccadaa8d
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/no-serial-probing.patch
@@ -0,0 +1,13 @@
1--- xserver/hw/kdrive/linux/mouse.c.orig 2004-05-13 14:25:51.000000000 -0700
2+++ xserver/hw/kdrive/linux/mouse.c 2005-09-22 12:20:47.000000000 -0700
3@@ -927,8 +927,10 @@ char *kdefaultMouse[] = {
4 "/dev/psaux",
5 "/dev/input/mice",
6 "/dev/adbmouse",
7+#ifdef BREAK_MY_SERIAL_CONSOLE
8 "/dev/ttyS0",
9 "/dev/ttyS1",
10+#endif
11 };
12
13 #define NUM_DEFAULT_MOUSE (sizeof (kdefaultMouse) / sizeof (kdefaultMouse[0]))
diff --git a/meta/packages/xserver/xserver-kdrive/onlyfb.patch b/meta/packages/xserver/xserver-kdrive/onlyfb.patch
new file mode 100644
index 0000000000..e773324981
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/onlyfb.patch
@@ -0,0 +1,21 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- xserver/hw/kdrive/Makefile.am~onlyfb
7+++ xserver/hw/kdrive/Makefile.am
8@@ -17,12 +17,4 @@
9 SUBDIRS = \
10 src \
11 linux \
12- $(XSDL_SUBDIRS) \
13- $(FBDEV_SUBDIRS) \
14- $(VESA_SUBDIRS) \
15- $(XEPHYR_SUBDIRS) \
16- ati \
17- fake \
18- ephyr \
19- i810 \
20- epson
21+ $(FBDEV_SUBDIRS)
diff --git a/meta/packages/xserver/xserver-kdrive/xserver-kdrive-poodle.patch b/meta/packages/xserver/xserver-kdrive/xserver-kdrive-poodle.patch
new file mode 100644
index 0000000000..ce80a7e389
--- /dev/null
+++ b/meta/packages/xserver/xserver-kdrive/xserver-kdrive-poodle.patch
@@ -0,0 +1,44 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- xserver/hw/kdrive/fbdev/fbdev.c~xserver-kdrive-poodle.patch
7+++ xserver/hw/kdrive/fbdev/fbdev.c
8@@ -190,6 +190,7 @@
9 var.nonstd = 0;
10 var.grayscale = 0;
11
12+ /* commented out for poodle
13 k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &var);
14
15 if (k < 0)
16@@ -198,10 +199,11 @@
17 return FALSE;
18 }
19
20- /* Re-get the "fixed" parameters since they might have changed */
21+ // Re-get the "fixed" parameters since they might have changed
22 k = ioctl (priv->fd, FBIOGET_FSCREENINFO, &priv->fix);
23 if (k < 0)
24 perror ("FBIOGET_FSCREENINFO");
25+ */
26
27 /* Now get the new screeninfo */
28 ioctl (priv->fd, FBIOGET_VSCREENINFO, &priv->var);
29@@ -659,13 +661,14 @@
30 priv->var.activate = FB_ACTIVATE_NOW|FB_CHANGE_CMAP_VBL;
31
32 /* display it on the LCD */
33+ /* commented out for poodle
34 k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &priv->var);
35 if (k < 0)
36 {
37 perror ("FBIOPUT_VSCREENINFO");
38 return FALSE;
39 }
40-
41+ */
42 if (priv->fix.visual == FB_VISUAL_DIRECTCOLOR)
43 {
44 struct fb_cmap cmap;