diff -ru linux-2.6.1-vanilla/drivers/input/mouse/sermouse.c linux-2.6.1/drivers/input/mouse/sermouse.c
--- linux-2.6.1-vanilla/drivers/input/mouse/sermouse.c	2004-01-09 04:59:46.000000000 -0200
+++ linux-2.6.1/drivers/input/mouse/sermouse.c	2004-01-30 15:06:44.000000000 -0200
@@ -289,10 +289,23 @@
 	printk(KERN_INFO "input: %s on %s\n", sermouse_protocols[sermouse->type], serio->phys);
 }
 
+static struct serio_device_id sermouse_ids[] = {
+	{ SERIO_RS232 | SERIO_MSC | SERIO_ID | SERIO_EXTRA },
+	{ SERIO_RS232 | SERIO_SUN | SERIO_ID | SERIO_EXTRA },
+	{ SERIO_RS232 | SERIO_MS  | SERIO_ID | SERIO_EXTRA },
+	{ SERIO_RS232 | SERIO_MP  | SERIO_ID | SERIO_EXTRA },
+	{ SERIO_RS232 | SERIO_MZ  | SERIO_ID | SERIO_EXTRA },
+	{ SERIO_RS232 | SERIO_MZP | SERIO_ID | SERIO_EXTRA },
+	{ SERIO_RS232 | SERIO_MZPP | SERIO_ID | SERIO_EXTRA },
+	{ 0 },
+};
+MODULE_DEVICE_TABLE(serio, sermouse_ids);
+
 static struct serio_dev sermouse_dev = {
 	.interrupt =	sermouse_interrupt,
 	.connect =	sermouse_connect,
-	.disconnect =	sermouse_disconnect
+	.disconnect =	sermouse_disconnect,
+	.id_table =	sermouse_ids,
 };
 
 int __init sermouse_init(void)
