patch-2.3.99-pre9 linux/drivers/tc/zs.c
Next file: linux/drivers/tc/zs.h
Previous file: linux/drivers/tc/tcsyms.c
Back to the patch index
Back to the overall index
- Lines: 98
- Date:
Sat May 13 08:31:25 2000
- Orig file:
v2.3.99-pre8/linux/drivers/tc/zs.c
- Orig date:
Tue Aug 31 17:29:14 1999
diff -u --recursive --new-file v2.3.99-pre8/linux/drivers/tc/zs.c linux/drivers/tc/zs.c
@@ -42,6 +42,7 @@
#include <asm/segment.h>
#include <asm/bitops.h>
#include <asm/uaccess.h>
+#include <asm/wbflush.h>
#include <asm/dec/interrupts.h>
#include <asm/dec/machtype.h>
#include <asm/dec/tc.h>
@@ -155,7 +156,7 @@
* memory if large numbers of serial ports are open.
*/
static unsigned char tmp_buf[4096]; /* This is cheating */
-static struct semaphore tmp_buf_sem = MUTEX;
+static DECLARE_MUTEX(tmp_buf_sem);
static inline int serial_paranoia_check(struct dec_serial *info,
dev_t device, const char *routine)
@@ -195,7 +196,7 @@
if (reg != 0) {
*channel->control = reg & 0xf;
- RECOVERY_DELAY;
+ wbflush(); RECOVERY_DELAY;
}
retval = *channel->control;
RECOVERY_DELAY;
@@ -207,10 +208,10 @@
{
if (reg != 0) {
*channel->control = reg & 0xf;
- RECOVERY_DELAY;
+ wbflush(); RECOVERY_DELAY;
}
*channel->control = value;
- RECOVERY_DELAY;
+ wbflush(); RECOVERY_DELAY;
return;
}
@@ -227,7 +228,7 @@
unsigned char value)
{
*channel->data = value;
- RECOVERY_DELAY;
+ wbflush(); RECOVERY_DELAY;
return;
}
@@ -1313,7 +1314,7 @@
char_time = 1;
if (timeout)
char_time = MIN(char_time, timeout);
- while ((read_zsreg(info->zs_channel, 1) & ALL_SNT) == 0) {
+ while ((read_zsreg(info->zs_channel, 1) & Tx_BUF_EMP) == 0) {
current->state = TASK_INTERRUPTIBLE;
schedule_timeout(char_time);
if (signal_pending(current))
@@ -1351,7 +1352,7 @@
static int block_til_ready(struct tty_struct *tty, struct file * filp,
struct dec_serial *info)
{
- struct wait_queue wait = { current, NULL };
+ DECLARE_WAITQUEUE(wait, current);
int retval;
int do_clocal = 0;
@@ -1773,8 +1774,8 @@
info->tqueue.data = info;
info->callout_termios =callout_driver.init_termios;
info->normal_termios = serial_driver.init_termios;
- info->open_wait = 0;
- info->close_wait = 0;
+ init_waitqueue_head(&info->open_wait);
+ init_waitqueue_head(&info->close_wait);
printk("tty%02d at 0x%08x (irq = %d)", info->line,
info->port, info->irq);
printk(" is a Z85C30 SCC\n");
@@ -1828,7 +1829,7 @@
while (!(*(info->zs_channel->control) & Tx_BUF_EMP) && --loops)
RECOVERY_DELAY;
*(info->zs_channel->data) = ch;
- RECOVERY_DELAY;
+ wbflush(); RECOVERY_DELAY;
restore_flags(flags);
}
@@ -2021,10 +2022,9 @@
/*
* Register console.
*/
-long __init zs_serial_console_init(long kmem_start, long kmem_end)
+void __init zs_serial_console_init(void)
{
register_console(&sercons);
- return kmem_start;
}
#endif /* ifdef CONFIG_SERIAL_CONSOLE */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)