Ok, much better. devfs wants "void *ops" not a struct file_operations.
Attached is a better patch, against 2.4.0-test10-pre7, which allows
video devices to handle all file ops themselves, giving themselves full
power to do whatever they wish.
--
Jeff Garzik | "Mind if I drive?" -Sam
Building 1024 | "Not if you don't mind me clawing at the
MandrakeSoft | dash and shrieking like a cheerleader."
| -Max
Index: include/linux/videodev.h
===================================================================
RCS file: /cvsroot/gkernel/linux_2_4/include/linux/videodev.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 videodev.h
--- include/linux/videodev.h 2000/10/22 19:36:11 1.1.1.1
+++ include/linux/videodev.h 2000/10/31 07:42:45
@@ -32,6 +32,7 @@
int busy;
int minor;
devfs_handle_t devfs_handle;
+ struct file_operation *fops;
};
extern int videodev_init(void);
Index: drivers/media/video/videodev.c
===================================================================
RCS file: /cvsroot/gkernel/linux_2_4/drivers/media/video/videodev.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 videodev.c
--- drivers/media/video/videodev.c 2000/10/22 21:28:40 1.1.1.1
+++ drivers/media/video/videodev.c 2000/10/31 07:42:46
@@ -476,6 +476,7 @@
devfs_register (NULL, name, DEVFS_FL_DEFAULT,
VIDEO_MAJOR, vfd->minor,
S_IFCHR | S_IRUSR | S_IWUSR,
+ vfd->fops ? (void*) vfd->fops :
&video_fops, NULL);
#if defined(CONFIG_PROC_FS) && defined(CONFIG_VIDEO_PROC_FS)