diff options
Diffstat (limited to 'drivers/sbus/char/bpp.c')
-rw-r--r-- | drivers/sbus/char/bpp.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/sbus/char/bpp.c b/drivers/sbus/char/bpp.c index 1d2bee01a..fb18a63c1 100644 --- a/drivers/sbus/char/bpp.c +++ b/drivers/sbus/char/bpp.c @@ -19,6 +19,7 @@ #include <linux/timer.h> #include <linux/ioport.h> #include <linux/major.h> +#include <linux/devfs_fs_kernel.h> #include <asm/uaccess.h> #include <asm/io.h> @@ -1004,6 +1005,8 @@ static inline void freeLptPort(int idx) #endif +static devfs_handle_t devfs_handle = NULL; + #ifdef MODULE int init_module(void) #else @@ -1017,7 +1020,7 @@ int __init bpp_init(void) if (rc == 0) return -ENODEV; - rc = register_chrdev(BPP_MAJOR, dev_name, &bpp_fops); + rc = devfs_register_chrdev(BPP_MAJOR, dev_name, &bpp_fops); if (rc < 0) return rc; @@ -1025,6 +1028,10 @@ int __init bpp_init(void) instances[idx].opened = 0; probeLptPort(idx); } + devfs_handle = devfs_mk_dir (NULL, "bpp", 3, NULL); + devfs_register_series (devfs_handle, "%u", BPP_NO, DEVFS_FL_DEFAULT, + BPP_MAJOR, 0, S_IFCHR | S_IRUSR | S_IWUSR, 0, 0, + &bpp_fops, NULL); return 0; } @@ -1034,7 +1041,8 @@ void cleanup_module(void) { unsigned idx; - unregister_chrdev(BPP_MAJOR, dev_name); + devfs_unregister (devfs_handle); + devfs_unregister_chrdev(BPP_MAJOR, dev_name); for (idx = 0 ; idx < BPP_NO ; idx += 1) { if (instances[idx].present) |