TTY: switch tty_flip_buffer_push
[cascardo/linux.git] / drivers / isdn / i4l / isdn_tty.c
index e09dc8a..d8a7d83 100644 (file)
@@ -60,18 +60,14 @@ static int si2bit[8] =
 static int
 isdn_tty_try_read(modem_info *info, struct sk_buff *skb)
 {
+       struct tty_port *port = &info->port;
        int c;
        int len;
-       struct tty_struct *tty;
        char last;
 
        if (!info->online)
                return 0;
 
-       tty = info->port.tty;
-       if (!tty)
-               return 0;
-
        if (!(info->mcr & UART_MCR_RTS))
                return 0;
 
@@ -81,7 +77,7 @@ isdn_tty_try_read(modem_info *info, struct sk_buff *skb)
 #endif
                ;
 
-       c = tty_buffer_request_room(tty, len);
+       c = tty_buffer_request_room(port, len);
        if (c < len)
                return 0;
 
@@ -91,25 +87,25 @@ isdn_tty_try_read(modem_info *info, struct sk_buff *skb)
                unsigned char *dp = skb->data;
                while (--l) {
                        if (*dp == DLE)
-                               tty_insert_flip_char(tty, DLE, 0);
-                       tty_insert_flip_char(tty, *dp++, 0);
+                               tty_insert_flip_char(port, DLE, 0);
+                       tty_insert_flip_char(port, *dp++, 0);
                }
                if (*dp == DLE)
-                       tty_insert_flip_char(tty, DLE, 0);
+                       tty_insert_flip_char(port, DLE, 0);
                last = *dp;
        } else {
 #endif
                if (len > 1)
-                       tty_insert_flip_string(tty, skb->data, len - 1);
+                       tty_insert_flip_string(port, skb->data, len - 1);
                last = skb->data[len - 1];
 #ifdef CONFIG_ISDN_AUDIO
        }
 #endif
        if (info->emu.mdmreg[REG_CPPP] & BIT_CPPP)
-               tty_insert_flip_char(tty, last, 0xFF);
+               tty_insert_flip_char(port, last, 0xFF);
        else
-               tty_insert_flip_char(tty, last, TTY_NORMAL);
-       tty_flip_buffer_push(tty);
+               tty_insert_flip_char(port, last, TTY_NORMAL);
+       tty_flip_buffer_push(port);
        kfree_skb(skb);
 
        return 1;
@@ -126,7 +122,6 @@ isdn_tty_readmodem(void)
        int midx;
        int i;
        int r;
-       struct tty_struct *tty;
        modem_info *info;
 
        for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
@@ -144,20 +139,21 @@ isdn_tty_readmodem(void)
                if ((info->vonline & 1) && (info->emu.vpar[1]))
                        isdn_audio_eval_silence(info);
 #endif
-               tty = info->port.tty;
-               if (tty) {
-                       if (info->mcr & UART_MCR_RTS) {
-                               /* CISCO AsyncPPP Hack */
-                               if (!(info->emu.mdmreg[REG_CPPP] & BIT_CPPP))
-                                       r = isdn_readbchan_tty(info->isdn_driver, info->isdn_channel, tty, 0);
-                               else
-                                       r = isdn_readbchan_tty(info->isdn_driver, info->isdn_channel, tty, 1);
-                               if (r)
-                                       tty_flip_buffer_push(tty);
-                       } else
-                               r = 1;
+               if (info->mcr & UART_MCR_RTS) {
+                       /* CISCO AsyncPPP Hack */
+                       if (!(info->emu.mdmreg[REG_CPPP] & BIT_CPPP))
+                               r = isdn_readbchan_tty(info->isdn_driver,
+                                               info->isdn_channel,
+                                               &info->port, 0);
+                       else
+                               r = isdn_readbchan_tty(info->isdn_driver,
+                                               info->isdn_channel,
+                                               &info->port, 1);
+                       if (r)
+                               tty_flip_buffer_push(&info->port);
                } else
                        r = 1;
+
                if (r) {
                        info->rcvsched = 0;
                        resched = 1;
@@ -2229,7 +2225,7 @@ isdn_tty_stat_callback(int i, isdn_ctrl *c)
 void
 isdn_tty_at_cout(char *msg, modem_info *info)
 {
-       struct tty_struct *tty;
+       struct tty_port *port = &info->port;
        atemu *m = &info->emu;
        char *p;
        char c;
@@ -2246,15 +2242,14 @@ isdn_tty_at_cout(char *msg, modem_info *info)
        l = strlen(msg);
 
        spin_lock_irqsave(&info->readlock, flags);
-       tty = info->port.tty;
-       if ((info->port.flags & ASYNC_CLOSING) || (!tty)) {
+       if (port->flags & ASYNC_CLOSING) {
                spin_unlock_irqrestore(&info->readlock, flags);
                return;
        }
 
        /* use queue instead of direct, if online and */
        /* data is in queue or buffer is full */
-       if (info->online && ((tty_buffer_request_room(tty, l) < l) ||
+       if (info->online && ((tty_buffer_request_room(port, l) < l) ||
                             !skb_queue_empty(&dev->drv[info->isdn_driver]->rpqueue[info->isdn_channel]))) {
                skb = alloc_skb(l, GFP_ATOMIC);
                if (!skb) {
@@ -2285,7 +2280,7 @@ isdn_tty_at_cout(char *msg, modem_info *info)
                if (skb) {
                        *sp++ = c;
                } else {
-                       if (tty_insert_flip_char(tty, c, TTY_NORMAL) == 0)
+                       if (tty_insert_flip_char(port, c, TTY_NORMAL) == 0)
                                break;
                }
        }
@@ -2299,7 +2294,7 @@ isdn_tty_at_cout(char *msg, modem_info *info)
 
        } else {
                spin_unlock_irqrestore(&info->readlock, flags);
-               tty_flip_buffer_push(tty);
+               tty_flip_buffer_push(port);
        }
 }