vserver 1.9.3
[linux-2.6.git] / drivers / isdn / i4l / isdn_tty.c
index 02b912a..921c3c2 100644 (file)
@@ -296,10 +296,7 @@ isdn_tty_tint(modem_info * info)
                info->send_outstanding++;
                info->msr &= ~UART_MSR_CTS;
                info->lsr &= ~UART_LSR_TEMT;
-               if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
-                   tty->ldisc.write_wakeup)
-                       (tty->ldisc.write_wakeup) (tty);
-               wake_up_interruptible(&tty->write_wait);
+               tty_wakeup(tty);
                return;
        }
        if (slen < 0) {
@@ -1174,10 +1171,7 @@ isdn_tty_write(struct tty_struct *tty, int from_user, const u_char * buf, int co
                                                /* If DLE decoding results in zero-transmit, but
                                                 * c originally was non-zero, do a wakeup.
                                                 */
-                                               if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
-                                                tty->ldisc.write_wakeup)
-                                                       (tty->ldisc.write_wakeup) (tty);
-                                               wake_up_interruptible(&tty->write_wait);
+                                               tty_wakeup(tty);
                                                info->msr |= UART_MSR_CTS;
                                                info->lsr |= UART_LSR_TEMT;
                                        }
@@ -1290,9 +1284,7 @@ isdn_tty_flush_buffer(struct tty_struct *tty)
        isdn_tty_cleanup_xmit(info);
        info->xmit_count = 0;
        wake_up_interruptible(&tty->write_wait);
-       if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
-           tty->ldisc.write_wakeup)
-               (tty->ldisc.write_wakeup) (tty);
+       tty_wakeup(tty);
 }
 
 static void
@@ -1747,10 +1739,10 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
        }
        dev->modempoll--;
        isdn_tty_shutdown(info);
+       
        if (tty->driver->flush_buffer)
                tty->driver->flush_buffer(tty);
-       if (tty->ldisc.flush_buffer)
-               tty->ldisc.flush_buffer(tty);
+       tty_ldisc_flush(tty);
        info->tty = NULL;
        info->ncarrier = 0;
        tty->closing = 0;
@@ -2681,8 +2673,7 @@ isdn_tty_modem_result(int code, modem_info * info)
                if ((info->flags & ISDN_ASYNC_CLOSING) || (!info->tty)) {
                        return;
                }
-               if (info->tty->ldisc.flush_buffer)
-                       info->tty->ldisc.flush_buffer(info->tty);
+               tty_ldisc_flush(info->tty);
                if ((info->flags & ISDN_ASYNC_CHECK_CD) &&
                    (!((info->flags & ISDN_ASYNC_CALLOUT_ACTIVE) &&
                       (info->flags & ISDN_ASYNC_CALLOUT_NOHUP)))) {