  
  MODULE_AUTHOR("Vojtech Pavlik <vojtech@suse.cz>");
  MODULE_DESCRIPTION("PS/2 mouse driver");
-@@ -177,6 +178,9 @@ static irqreturn_t psmouse_interrupt(str
+@@ -187,6 +188,10 @@ static irqreturn_t psmouse_interrupt(str
  		goto out;
  	}
  
-+	if (!psmouse_noext && !ALPS_process_byte(psmouse, regs))
++	if ((psmouse_max_proto > PSMOUSE_PS2) &&
++	    !ALPS_process_byte(psmouse, regs))
 +		goto out;
 +
  	if (psmouse->pktcnt == 3 + (psmouse->type >= PSMOUSE_GENPS)) {
  		psmouse_process_packet(psmouse, regs);
  		psmouse->pktcnt = 0;
-@@ -479,6 +483,9 @@ static void psmouse_initialize(struct ps
+@@ -498,6 +503,9 @@ static void psmouse_initialize(struct ps
   */
  
  	psmouse_command(psmouse, param, PSMOUSE_CMD_SETSTREAM);
 +
-+	if (!psmouse_noext)
++	if (psmouse_max_proto > PSMOUSE_PS2)
 +		ALPS_initialize(psmouse);
  }
  
  /*
 diff -puN drivers/input/mouse/psmouse.h~alps drivers/input/mouse/psmouse.h
---- linux/drivers/input/mouse/psmouse.h~alps	2003-11-30 13:43:39.000000000 +0100
-+++ linux-petero/drivers/input/mouse/psmouse.h	2003-12-16 20:17:12.000000000 +0100
+--- linux/drivers/input/mouse/psmouse.h~alps	2004-01-10 21:39:13.000000000 +0100
++++ linux-petero/drivers/input/mouse/psmouse.h	2004-01-10 21:39:13.000000000 +0100
 @@ -9,6 +9,7 @@
  #define PSMOUSE_CMD_GETID	0x02f2
  #define PSMOUSE_CMD_SETRATE	0x10f3

-psmouse-objs  := psmouse-base.o logips2pp.o synaptics.o
+psmouse-objs  := psmouse-base.o logips2pp.o alps.o synaptics.o
diff -puN drivers/input/mouse/alps.c~alps drivers/input/mouse/alps.c
--- linux/drivers/input/mouse/alps.c~alps	2003-11-30 13:43:39.000000000 +0100
+++ linux-petero/drivers/input/mouse/alps.c	2003-12-16 20:20:59.000000000 +0100
@@ -0,0 +1,140 @@
+/*
+ * 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-01-10 21:39:13.000000000 +0100
+++ linux-petero/drivers/input/mouse/psmouse-base.c	2004-01-10 22:11:50.000000000 +0100
@@ -21,6 +21,7 @@
 #include "psmouse.h"
 #include "synaptics.h"
