--- linux-2.4.0-test12/include/linux/parport.h	Tue Dec 12 15:41:56 2000
+++ linux/include/linux/parport.h	Fri Dec 15 00:41:32 2000
@@ -91,6 +91,10 @@
 /* Flags for block transfer operations. */
 #define PARPORT_EPP_FAST		(1<<0) /* Unreliable counts. */
 
+struct parport_device_id {
+	const char *pattern;	/* must be all lower case */
+}; /* Normally, a string will be cast into a pointer to this struct. */
+
 /* The rest is for the kernel only */
 #ifdef __KERNEL__
 
--- linux-2.4.0-test12/drivers/char/lp.c	Mon Oct 30 18:40:37 2000
+++ linux/drivers/char/lp.c	Fri Dec 15 15:07:56 2000
@@ -141,6 +141,17 @@
 /* ROUND_UP macro from fs/select.c */
 #define ROUND_UP(x,y) (((x)+(y)-1)/(y))
 
+/* printer_ieee1284_id is declared as the its own variable so that it
+   can be in the __initdata section. */
+static __initdata char printer_ieee1284_id[] = "CLS:PRINTER";
+
+static __initdata struct parport_device_id printer_id_tbl[] = {
+  	{ printer_ieee1284_id },
+	{ }
+};
+
+MODULE_DEVICE_TABLE(parport, printer_id_tbl);
+
 static devfs_handle_t devfs_handle = NULL;
 
 struct lp_struct lp_table[LP_NO];