summaryrefslogtreecommitdiffstats
path: root/drivers/sgi/char/sgiserial.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-06-01 03:16:17 +0000
committerRalf Baechle <ralf@linux-mips.org>1997-06-01 03:16:17 +0000
commitd8d9b8f76f22b7a16a83e261e64f89ee611f49df (patch)
tree3067bc130b80d52808e6390c9fc7fc087ec1e33c /drivers/sgi/char/sgiserial.c
parent19c9bba94152148523ba0f7ef7cffe3d45656b11 (diff)
Initial revision
Diffstat (limited to 'drivers/sgi/char/sgiserial.c')
-rw-r--r--drivers/sgi/char/sgiserial.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/sgi/char/sgiserial.c b/drivers/sgi/char/sgiserial.c
index 843870e94..c48c9ac45 100644
--- a/drivers/sgi/char/sgiserial.c
+++ b/drivers/sgi/char/sgiserial.c
@@ -31,6 +31,8 @@
#define NUM_SERIAL 1 /* One chip on board. */
#define NUM_CHANNELS (NUM_SERIAL * 2)
+extern struct wait_queue * keypress_wait;
+
struct sgi_zslayout *zs_chips[NUM_SERIAL] = { 0, };
struct sgi_zschannel *zs_channels[NUM_CHANNELS] = { 0, 0, };
struct sgi_zschannel *zs_conschan;
@@ -351,7 +353,7 @@ static _INLINE_ void rs_sched_event(struct sgi_serial *info,
int event)
{
info->event |= 1 << event;
- queue_task_irq_off(&info->tqueue, &tq_serial);
+ queue_task(&info->tqueue, &tq_serial);
mark_bh(SERIAL_BH);
}
@@ -400,7 +402,7 @@ static _INLINE_ void receive_chars(struct sgi_serial *info, struct pt_regs *regs
goto clear_and_exit;
if (tty->flip.count >= TTY_FLIPBUF_SIZE)
- queue_task_irq_off(&tty->flip.tqueue, &tq_timer);
+ queue_task(&tty->flip.tqueue, &tq_timer);
tty->flip.count++;
if(stat & PAR_ERR)
*tty->flip.flag_buf_ptr++ = TTY_PARITY;
@@ -412,7 +414,7 @@ static _INLINE_ void receive_chars(struct sgi_serial *info, struct pt_regs *regs
*tty->flip.flag_buf_ptr++ = 0; /* XXX */
*tty->flip.char_buf_ptr++ = ch;
- queue_task_irq_off(&tty->flip.tqueue, &tq_timer);
+ queue_task(&tty->flip.tqueue, &tq_timer);
clear_and_exit:
rs_recv_clear(info->zs_channel);
@@ -596,7 +598,7 @@ static void do_softint(void *private_)
if (!tty)
return;
- if (clear_bit(RS_EVENT_WRITE_WAKEUP, &info->event)) {
+ if (test_and_clear_bit(RS_EVENT_WRITE_WAKEUP, &info->event)) {
if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
tty->ldisc.write_wakeup)
(tty->ldisc.write_wakeup)(tty);