diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-24 00:12:35 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-24 00:12:35 +0000 |
commit | 482368b1a8e45430672c58c9a42e7d2004367126 (patch) | |
tree | ce2a1a567d4d62dee7c2e71a46a99cf72cf1d606 /drivers/char/dtlk.c | |
parent | e4d0251c6f56ab2e191afb70f80f382793e23f74 (diff) |
Merge with 2.3.47. Guys, this is buggy as shit. You've been warned.
Diffstat (limited to 'drivers/char/dtlk.c')
-rw-r--r-- | drivers/char/dtlk.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/char/dtlk.c b/drivers/char/dtlk.c index ac913935b..58ce08712 100644 --- a/drivers/char/dtlk.c +++ b/drivers/char/dtlk.c @@ -64,6 +64,7 @@ #include <linux/init.h> /* for __init, module_{init,exit} */ #include <linux/poll.h> /* for POLLIN, etc. */ #include <linux/dtlk.h> /* local header file for DoubleTalk values */ +#include <linux/devfs_fs_kernel.h> #ifdef TRACING #define TRACE_TEXT(str) printk(str); @@ -352,19 +353,25 @@ static int dtlk_release(struct inode *inode, struct file *file) return 0; } +static devfs_handle_t devfs_handle; + static int __init dtlk_init(void) { dtlk_port_lpc = 0; dtlk_port_tts = 0; dtlk_busy = 0; dtlk_timer_active = 0; - dtlk_major = register_chrdev(0, "dtlk", &dtlk_fops); + dtlk_major = devfs_register_chrdev(0, "dtlk", &dtlk_fops); if (dtlk_major == 0) { printk(KERN_ERR "DoubleTalk PC - cannot register device\n"); return 0; } if (dtlk_dev_probe() == 0) printk(", MAJOR %d\n", dtlk_major); + devfs_handle = devfs_register (NULL, "dtlk", 0, DEVFS_FL_NONE, + dtlk_major, DTLK_MINOR, + S_IFCHR | S_IRUSR | S_IWUSR, 0, 0, + &dtlk_fops, NULL); init_timer(&dtlk_timer); dtlk_timer.function = dtlk_timer_tick; @@ -383,7 +390,8 @@ static void __exit dtlk_cleanup (void) signals... */ dtlk_write_tts(DTLK_CLEAR); - unregister_chrdev(dtlk_major, "dtlk"); + devfs_unregister_chrdev(dtlk_major, "dtlk"); + devfs_unregister(devfs_handle); release_region(dtlk_port_lpc, DTLK_IO_EXTENT); } |