changeset 5653:39115273d236

Mark Schreiber sent link to Marcus Sundburg patch to mga_vid, which enables mga_vid operation with devfs.
author eyck
date Tue, 16 Apr 2002 20:19:47 +0000
parents 22e251441360
children a8e785ce5cbf
files drivers/mga_vid.c
diffstat 1 files changed, 26 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/drivers/mga_vid.c	Tue Apr 16 19:43:36 2002 +0000
+++ b/drivers/mga_vid.c	Tue Apr 16 20:19:47 2002 +0000
@@ -57,6 +57,10 @@
 #include <asm/mtrr.h>
 #endif
 
+#ifdef CONFIG_DEVFS_FS
+#include <linux/devfs_fs_kernel.h>
+#endif
+
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <asm/io.h>
@@ -261,6 +265,10 @@
 
 static mga_vid_config_t mga_config; 
 
+#ifdef CONFIG_DEVFS_FS
+static devfs_handle_t dev_handle = NULL;
+#endif
+
 static int colkey_saved=0;
 static int colkey_on=0;
 static unsigned char colkey_color[4];
@@ -1555,8 +1563,17 @@
 			return -EINVAL;
 		}
 	}
-
+#ifdef CONFIG_DEVFS_FS
+	if ((dev_handle = devfs_register(
+					NULL,
+					"mga_vid", 0, DEVFS_FL_NONE,
+					MGA_VID_MAJOR, 0,
+					S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IFCHR,
+					0, 0,
+					&mga_vid_fops, NULL)) == NULL)
+#else
 	if(register_chrdev(MGA_VID_MAJOR, "mga_vid", &mga_vid_fops))
+#endif		
 	{
 		printk(KERN_ERR "mga_vid: unable to get major: %d\n", MGA_VID_MAJOR);
 		return -EIO;
@@ -1565,7 +1582,11 @@
 	if (!mga_vid_find_card())
 	{
 		printk(KERN_ERR "mga_vid: no supported devices found\n");
+#ifdef CONFIG_DEVFS_FS
+		devfs_unregister(dev_handle);
+#else
 		unregister_chrdev(MGA_VID_MAJOR, "mga_vid");
+#endif
 		return -EINVAL;
 	}
 	mga_param_buff = kmalloc(PARAM_BUFF_SIZE,GFP_KERNEL);
@@ -1594,6 +1615,10 @@
 
 	//FIXME turn off BES
 	printk(KERN_INFO "mga_vid: Cleaning up module\n");
+#ifdef CONFIG_DEVFS_FS
+	devfs_unregister(dev_handle);
+#else
 	unregister_chrdev(MGA_VID_MAJOR, "mga_vid");
+#endif
 }