Index: comedi/comedi_fops.c
===================================================================
RCS file: /cvs/comedi/comedi/comedi/comedi_fops.c,v
retrieving revision 1.159
diff -u -r1.159 comedi_fops.c
--- comedi/comedi_fops.c	21 Nov 2005 00:11:58 -0000	1.159
+++ comedi/comedi_fops.c	11 Jan 2006 12:56:58 -0000
@@ -1740,7 +1740,7 @@
 		sprintf(name, "comedi%d", i);
 		devfs_register(NULL, name, DEVFS_FL_DEFAULT,
 			COMEDI_MAJOR, i, 0666 | S_IFCHR, &comedi_fops, NULL);
-		class_device_create(comedi_class, MKDEV(COMEDI_MAJOR, i), NULL, "comedi%i", i);
+		CLASS_DEVICE_CREATE(comedi_class, MKDEV(COMEDI_MAJOR, i), NULL, "comedi%i", i);
 	}
 
 	comedi_rt_init();
Index: include/linux/device.h
===================================================================
RCS file: /cvs/comedi/comedi/include/linux/device.h,v
retrieving revision 1.5
diff -u -r1.5 device.h
--- include/linux/device.h	6 Oct 2005 17:42:06 -0000	1.5
+++ include/linux/device.h	11 Jan 2006 12:57:02 -0000
@@ -53,5 +53,15 @@
 
 #endif
 
+/* Comedi code needs to call CLASS_DEVICE_CREATE instead of class_device_create
+ * for compatibility with kernel 2.6.15 and later. */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15)
+#define CLASS_DEVICE_CREATE(cs, dev, device, fmt...) \
+	class_device_create(cs, dev, device, fmt)
+#else
+#define CLASS_DEVICE_CREATE(cs, dev, device, fmt...) \
+	class_device_create(cs, 0, dev, device, fmt)
+#endif
+
 #endif // __COMPAT_LINUX_DEVICE_H_
 

