 +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
+--- linux/drivers/input/mouse/psmouse-base.c~alps	2004-02-22 08:29:18.000000000 +0100
++++ linux-petero/drivers/input/mouse/psmouse-base.c	2004-02-22 08:29:18.000000000 +0100
 @@ -21,6 +21,7 @@
  #include "psmouse.h"
  #include "synaptics.h"

+	left  |= (packet[3]     ) & 1;
+	right |= (packet[3] >> 1) & 1;
+	if (packet[0] == 0xff) {
+		input_report_key(dev, BTN_BACK,    (packet[3] >> 2) & 1);
+		input_report_key(dev, BTN_FORWARD, (packet[2] >> 2) & 1);
+	} else {
+		left   |= (packet[0]     ) & 1;
+		right  |= (packet[0] >> 1) & 1;

+	return 0;
+}
diff -puN drivers/input/mouse/alps.h~alps drivers/input/mouse/alps.h
--- linux/drivers/input/mouse/alps.h~alps	2004-02-22 08:29:18.000000000 +0100
+++ linux-petero/drivers/input/mouse/alps.h	2004-02-22 08:29:18.000000000 +0100
@@ -0,0 +1,17 @@
+/*
+ * ALPS touchpad PS/2 mouse driver
