git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git]
/
drivers
/
char
/
dtlk.c
diff --git
a/drivers/char/dtlk.c
b/drivers/char/dtlk.c
index
e8f15f4
..
2a11c68
100644
(file)
--- a/
drivers/char/dtlk.c
+++ b/
drivers/char/dtlk.c
@@
-52,7
+52,7
@@
#define KERNEL
#include <linux/types.h>
#include <linux/fs.h>
#define KERNEL
#include <linux/types.h>
#include <linux/fs.h>
-#include <linux/mm.h>
/* for verify_area */
+#include <linux/mm.h>
#include <linux/errno.h> /* for -EBUSY */
#include <linux/ioport.h> /* for request_region */
#include <linux/delay.h> /* for loops_per_jiffy */
#include <linux/errno.h> /* for -EBUSY */
#include <linux/ioport.h> /* for request_region */
#include <linux/delay.h> /* for loops_per_jiffy */
@@
-107,7
+107,6
@@
static struct file_operations dtlk_fops =
};
/* local prototypes */
};
/* local prototypes */
-static void dtlk_delay(int ms);
static int dtlk_dev_probe(void);
static struct dtlk_settings *dtlk_interrogate(void);
static int dtlk_readable(void);
static int dtlk_dev_probe(void);
static struct dtlk_settings *dtlk_interrogate(void);
static int dtlk_readable(void);
@@
-146,7
+145,7
@@
static ssize_t dtlk_read(struct file *file, char __user *buf,
return i;
if (file->f_flags & O_NONBLOCK)
break;
return i;
if (file->f_flags & O_NONBLOCK)
break;
-
dtlk_delay
(100);
+
msleep_interruptible
(100);
}
if (retries == loops_per_jiffy)
printk(KERN_ERR "dtlk_read times out\n");
}
if (retries == loops_per_jiffy)
printk(KERN_ERR "dtlk_read times out\n");
@@
-191,7
+190,7
@@
static ssize_t dtlk_write(struct file *file, const char __user *buf,
rate to 500 bytes/sec, but that's
still enough to keep up with the
speech synthesizer. */
rate to 500 bytes/sec, but that's
still enough to keep up with the
speech synthesizer. */
-
dtlk_delay
(1);
+
msleep_interruptible
(1);
else {
/* the RDY bit goes zero 2-3 usec
after writing, and goes 1 again
else {
/* the RDY bit goes zero 2-3 usec
after writing, and goes 1 again
@@
-199,7
+198,7
@@
static ssize_t dtlk_write(struct file *file, const char __user *buf,
up to 250 usec for the RDY bit to
go nonzero. */
for (retries = 0;
up to 250 usec for the RDY bit to
go nonzero. */
for (retries = 0;
- retries <
loops_per_jiffy / (4000/HZ)
;
+ retries <
HZ*(loops_per_jiffy >> 3)/500
;
retries++)
if (inb_p(dtlk_port_tts) &
TTS_WRITABLE)
retries++)
if (inb_p(dtlk_port_tts) &
TTS_WRITABLE)
@@
-212,7
+211,7
@@
static ssize_t dtlk_write(struct file *file, const char __user *buf,
if (file->f_flags & O_NONBLOCK)
break;
if (file->f_flags & O_NONBLOCK)
break;
-
dtlk_delay
(1);
+
msleep_interruptible
(1);
if (++retries > 10 * HZ) { /* wait no more than 10 sec
from last write */
if (++retries > 10 * HZ) { /* wait no more than 10 sec
from last write */
@@
-351,8
+350,7
@@
static int __init dtlk_init(void)
static void __exit dtlk_cleanup (void)
{
dtlk_write_bytes("goodbye", 8);
static void __exit dtlk_cleanup (void)
{
dtlk_write_bytes("goodbye", 8);
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(5 * HZ / 10); /* nap 0.50 sec but
+ msleep_interruptible(500); /* nap 0.50 sec but
could be awakened
earlier by
signals... */
could be awakened
earlier by
signals... */
@@
-368,13
+366,6
@@
module_exit(dtlk_cleanup);
/* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ */
-/* sleep for ms milliseconds */
-static void dtlk_delay(int ms)
-{
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout((ms * HZ + 1000 - HZ) / 1000);
-}
-
static int dtlk_readable(void)
{
#ifdef TRACING
static int dtlk_readable(void)
{
#ifdef TRACING
@@
-431,7
+422,7
@@
static int __init dtlk_dev_probe(void)
/* posting an index takes 18 msec. Here, we
wait up to 100 msec to see whether it
appears. */
/* posting an index takes 18 msec. Here, we
wait up to 100 msec to see whether it
appears. */
-
dtlk_delay
(100);
+
msleep_interruptible
(100);
dtlk_has_indexing = dtlk_readable();
#ifdef TRACING
printk(", indexing %d\n", dtlk_has_indexing);
dtlk_has_indexing = dtlk_readable();
#ifdef TRACING
printk(", indexing %d\n", dtlk_has_indexing);
@@
-454,7
+445,7
@@
for (i = 0; i < 10; i++) \
LOOK
dtlk_write_bytes("\0012I\r", 4);
buffer[b++] = 0;
LOOK
dtlk_write_bytes("\0012I\r", 4);
buffer[b++] = 0;
- __delay(50 *
loops_per_jiffy / (1000/HZ)
);
+ __delay(50 *
(loops_per_jiffy >> 3) * HZ / 125
);
outb_p(0xff, dtlk_port_lpc);
buffer[b++] = 0;
LOOK
outb_p(0xff, dtlk_port_lpc);
buffer[b++] = 0;
LOOK