--- 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 +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)