 -psmouse-objs  := psmouse-base.o logips2pp.o synaptics.o
 +psmouse-objs  := psmouse-base.o logips2pp.o alps.o synaptics.o
 diff -puN /dev/null drivers/input/mouse/alps.c
---- /dev/null	2003-01-30 11:24:37.000000000 +0100
-+++ linux-petero/drivers/input/mouse/alps.c	2004-04-22 23:34:00.000000000 +0200
+--- /dev/null	2004-02-23 22:02:56.000000000 +0100
++++ linux-petero/drivers/input/mouse/alps.c	2004-06-08 23:17:59.963953760 +0200
 @@ -0,0 +1,137 @@
 +/*
 + * ALPS touchpad PS/2 mouse driver

+int ALPS_process_byte(struct psmouse *psmouse, struct pt_regs *regs);
+#endif
diff -puN drivers/input/mouse/psmouse-base.c~alps drivers/input/mouse/psmouse-base.c
--- linux/drivers/input/mouse/psmouse-base.c~alps	2004-04-22 23:33:12.000000000 +0200
+++ linux-petero/drivers/input/mouse/psmouse-base.c	2004-04-22 23:33:12.000000000 +0200
@@ -21,6 +21,7 @@
 #include "psmouse.h"
 #include "synaptics.h"

 
 MODULE_AUTHOR("Vojtech Pavlik <vojtech@suse.cz>");
 MODULE_DESCRIPTION("PS/2 mouse driver");
@@ -203,6 +204,10 @@ static irqreturn_t psmouse_interrupt(str
 		}
 	}
 
+	if ((psmouse_max_proto > PSMOUSE_PS2) &&
+	    !ALPS_process_byte(psmouse, regs))
+		goto out;
+
 	rc = psmouse->protocol_handler(psmouse, regs);
 
 	switch (rc) {
@@ -595,6 +600,9 @@ static void psmouse_initialize(struct ps
  */
 
 	psmouse_command(psmouse, param, PSMOUSE_CMD_SETSTREAM);
