(nd->nd_dpa_port == PORT_NUM(MINOR(tty_devnum(tty)))))
                        dgrp_dpa_data(nd, 1, myflipbuf, len);
 
-               tty_insert_flip_string_flags(tty, myflipbuf,
+               tty_insert_flip_string_flags(&ch->port, myflipbuf,
                                             myflipflagbuf, len);
                tty_flip_buffer_push(tty);
 
 
 
        while (n) {
                t = min(n, 16);
-               c = tty_insert_flip_string_fixed_flag(tty, buf, TTY_BREAK, t);
+               c = tty_insert_flip_string_fixed_flag(&port->port, buf,
+                               TTY_BREAK, t);
                n -= c;
                brk += c;
                if (c < t)
 
        spin_lock_bh(&port->lock);
        list_for_each_entry_safe(buf, next, &port->buf_list, list) {
-               n = tty_insert_flip_string_fixed_flag(tty, buf->data,
+               n = tty_insert_flip_string_fixed_flag(&port->port, buf->data,
                                                      TTY_NORMAL, buf->n);
                c += n;
                port->buffered -= n;
        }
 
        if (!test_bit(BUFFERING_RX, &port->flags)) {
-               c = tty_insert_flip_string_fixed_flag(tty, data, TTY_NORMAL, n);
+               c = tty_insert_flip_string_fixed_flag(&port->port, data,
+                               TTY_NORMAL, n);
                if (c > 0)
                        tty_flip_buffer_push(tty);
                n -= c;
 
                   for performance, but because of buffer boundaries, there
                   may be several steps to the operation */
                        while (1) {
-                               len = tty_prepare_flip_string(tty, &buf,
+                               len = tty_prepare_flip_string(port, &buf,
                                                char_count);
                                if (!len)
                                        break;
 
                        break;
                }
        } else {                                /* Data   Packet */
-
-               count = tty_prepare_flip_string(tty, &rp, byte_count & ~1);
+               count = tty_prepare_flip_string(&port->port, &rp,
+                               byte_count & ~1);
                pr_debug("%s: Can rx %d of %d bytes.\n",
                         __func__, count, byte_count);
                word_count = count >> 1;
 
                        ofs = baseAddr + DynPage_addr + bufhead + head;
                        len = (tail >= head) ? (tail - head) :
                                        (rx_mask + 1 - head);
-                       len = tty_prepare_flip_string(tty, &dst,
+                       len = tty_prepare_flip_string(&port->port, &dst,
                                        min(len, count));
                        memcpy_fromio(dst, ofs, len);
                        head = (head + len) & rx_mask;
                while (count > 0) {
                        writew(pageno, baseAddr + Control_reg);
                        ofs = baseAddr + DynPage_addr + pageofs;
-                       len = tty_prepare_flip_string(tty, &dst,
+                       len = tty_prepare_flip_string(&port->port, &dst,
                                        min(Page_size - pageofs, count));
                        memcpy_fromio(dst, ofs, len);
 
 
                 * characters at time by doing repeated word IO
                 * transfer.
                 */
-               space = tty_prepare_flip_string(tty, &cbuf, ToRecv);
+               space = tty_prepare_flip_string(&info->port, &cbuf, ToRecv);
                if (space < ToRecv) {
 #ifdef ROCKET_DEBUG_RECEIVE
                        printk(KERN_INFO "rp_do_receive:insufficient space ToRecv=%d space=%d\n", ToRecv, space);
 
                if (avail == 0)
                        break;
 
-               avail = tty_prepare_flip_string(tty, &ptr, avail);
+               avail = tty_prepare_flip_string(&info->port, &ptr, avail);
 
                if (smd_read(info->ch, ptr, avail) != avail) {
                        /* shouldn't be possible since we're in interrupt
 
 
 /**
  *     tty_insert_flip_string_fixed_flag - Add characters to the tty buffer
- *     @tty: tty structure
+ *     @port: tty port
  *     @chars: characters
  *     @flag: flag value for each character
  *     @size: size
  *     Locking: Called functions may take port->buf.lock
  */
 
-int tty_insert_flip_string_fixed_flag(struct tty_struct *tty,
+int tty_insert_flip_string_fixed_flag(struct tty_port *port,
                const unsigned char *chars, char flag, size_t size)
 {
-       struct tty_bufhead *buf = &tty->port->buf;
+       struct tty_bufhead *buf = &port->buf;
        int copied = 0;
        do {
                int goal = min_t(size_t, size - copied, TTY_BUFFER_PAGE);
                struct tty_buffer *tb;
 
                spin_lock_irqsave(&buf->lock, flags);
-               space = __tty_buffer_request_room(tty->port, goal);
+               space = __tty_buffer_request_room(port, goal);
                tb = buf->tail;
                /* If there is no space then tb may be NULL */
                if (unlikely(space == 0)) {
 
 /**
  *     tty_insert_flip_string_flags    -       Add characters to the tty buffer
- *     @tty: tty structure
+ *     @port: tty port
  *     @chars: characters
  *     @flags: flag bytes
  *     @size: size
  *     Locking: Called functions may take port->buf.lock
  */
 
-int tty_insert_flip_string_flags(struct tty_struct *tty,
+int tty_insert_flip_string_flags(struct tty_port *port,
                const unsigned char *chars, const char *flags, size_t size)
 {
-       struct tty_bufhead *buf = &tty->port->buf;
+       struct tty_bufhead *buf = &port->buf;
        int copied = 0;
        do {
                int goal = min_t(size_t, size - copied, TTY_BUFFER_PAGE);
                struct tty_buffer *tb;
 
                spin_lock_irqsave(&buf->lock, __flags);
-               space = __tty_buffer_request_room(tty->port, goal);
+               space = __tty_buffer_request_room(port, goal);
                tb = buf->tail;
                /* If there is no space then tb may be NULL */
                if (unlikely(space == 0)) {
 
 /**
  *     tty_prepare_flip_string         -       make room for characters
- *     @tty: tty
+ *     @port: tty port
  *     @chars: return pointer for character write area
  *     @size: desired size
  *
  *     Locking: May call functions taking port->buf.lock
  */
 
-int tty_prepare_flip_string(struct tty_struct *tty, unsigned char **chars,
+int tty_prepare_flip_string(struct tty_port *port, unsigned char **chars,
                size_t size)
 {
-       struct tty_bufhead *buf = &tty->port->buf;
+       struct tty_bufhead *buf = &port->buf;
        int space;
        unsigned long flags;
        struct tty_buffer *tb;
 
        spin_lock_irqsave(&buf->lock, flags);
-       space = __tty_buffer_request_room(tty->port, size);
+       space = __tty_buffer_request_room(port, size);
 
        tb = buf->tail;
        if (likely(space)) {
 
 /**
  *     tty_prepare_flip_string_flags   -       make room for characters
- *     @tty: tty
+ *     @port: tty port
  *     @chars: return pointer for character write area
  *     @flags: return pointer for status flag write area
  *     @size: desired size
  *     Locking: May call functions taking port->buf.lock
  */
 
-int tty_prepare_flip_string_flags(struct tty_struct *tty,
+int tty_prepare_flip_string_flags(struct tty_port *port,
                        unsigned char **chars, char **flags, size_t size)
 {
-       struct tty_bufhead *buf = &tty->port->buf;
+       struct tty_bufhead *buf = &port->buf;
        int space;
        unsigned long __flags;
        struct tty_buffer *tb;
 
        spin_lock_irqsave(&buf->lock, __flags);
-       space = __tty_buffer_request_room(tty->port, size);
+       space = __tty_buffer_request_room(port, size);
 
        tb = buf->tail;
        if (likely(space)) {
 
                if (lsr & UART_LSR_OE)
                        tty_insert_flip_char(tty, 0, TTY_OVERRUN);
        }
-       tty_insert_flip_string_fixed_flag(tty, data, tty_flag,
+       tty_insert_flip_string_fixed_flag(&port->port, data, tty_flag,
                                                        urb->actual_length);
        tty_flip_buffer_push(tty);
        tty_kref_put(tty);
 
                        tty_insert_flip_char(tty, 0, TTY_OVERRUN);
        }
 
-       tty_insert_flip_string_fixed_flag(tty, data, tty_flag,
+       tty_insert_flip_string_fixed_flag(&port->port, data, tty_flag,
                                                        urb->actual_length);
        tty_flip_buffer_push(tty);
        tty_kref_put(tty);
 
 
        /* process read if there is data other than line status */
        if (tty && bytes > i) {
-               tty_insert_flip_string_fixed_flag(tty, data + i,
+               tty_insert_flip_string_fixed_flag(&port->port, data + i,
                                tty_flag, bytes - i);
                tty_flip_buffer_push(tty);
        }
 
                /* data length is len-1 (one byte of len is port_status) */
                --len;
                if (len > 0) {
-                       tty_insert_flip_string_fixed_flag(tty, data, flag,
-                                                                       len);
+                       tty_insert_flip_string_fixed_flag(&port->port, data,
+                                       flag, len);
                        tty_flip_buffer_push(tty);
                }
        }
 
                        if (!usb_serial_handle_sysrq_char(port, data[i]))
                                tty_insert_flip_char(tty, data[i], tty_flag);
        } else {
-               tty_insert_flip_string_fixed_flag(tty, data, tty_flag,
+               tty_insert_flip_string_fixed_flag(&port->port, data, tty_flag,
                                                        urb->actual_length);
        }
 
 
                                tty_insert_flip_char(tty, *ch, flag);
                }
        } else {
-               tty_insert_flip_string_fixed_flag(tty, ch, flag, len);
+               tty_insert_flip_string_fixed_flag(&port->port, ch, flag, len);
        }
 
        return len;
 
                        if (!usb_serial_handle_sysrq_char(port, data[i]))
                                tty_insert_flip_char(tty, data[i], tty_flag);
        } else {
-               tty_insert_flip_string_fixed_flag(tty, data, tty_flag,
+               tty_insert_flip_string_fixed_flag(&port->port, data, tty_flag,
                                                        urb->actual_length);
        }
 
 
                                   priv->line_status & MSR_STATUS_LINE_DCD);
        }
 
-       tty_insert_flip_string_fixed_flag(tty, data, tty_flag,
+       tty_insert_flip_string_fixed_flag(&port->port, data, tty_flag,
                                                        urb->actual_length);
        tty_flip_buffer_push(tty);
        tty_kref_put(tty);
 
                                tty_insert_flip_char(tty, *ch, flag);
                }
        } else
-               tty_insert_flip_string_fixed_flag(tty, ch, flag, len);
+               tty_insert_flip_string_fixed_flag(&port->port, ch, flag, len);
 
        return len;
 }
 
 #define _LINUX_TTY_FLIP_H
 
 extern int tty_buffer_request_room(struct tty_port *port, size_t size);
-extern int tty_insert_flip_string_flags(struct tty_struct *tty, const unsigned char *chars, const char *flags, size_t size);
-extern int tty_insert_flip_string_fixed_flag(struct tty_struct *tty, const unsigned char *chars, char flag, size_t size);
-extern int tty_prepare_flip_string(struct tty_struct *tty, unsigned char **chars, size_t size);
-extern int tty_prepare_flip_string_flags(struct tty_struct *tty, unsigned char **chars, char **flags, size_t size);
+extern int tty_insert_flip_string_flags(struct tty_port *port,
+               const unsigned char *chars, const char *flags, size_t size);
+extern int tty_insert_flip_string_fixed_flag(struct tty_port *port,
+               const unsigned char *chars, char flag, size_t size);
+extern int tty_prepare_flip_string(struct tty_port *port,
+               unsigned char **chars, size_t size);
+extern int tty_prepare_flip_string_flags(struct tty_port *port,
+               unsigned char **chars, char **flags, size_t size);
 void tty_schedule_flip(struct tty_struct *tty);
 
 static inline int tty_insert_flip_char(struct tty_struct *tty,
                tb->char_buf_ptr[tb->used++] = ch;
                return 1;
        }
-       return tty_insert_flip_string_flags(tty, &ch, &flag, 1);
+       return tty_insert_flip_string_flags(tty->port, &ch, &flag, 1);
 }
 
 static inline int tty_insert_flip_string(struct tty_struct *tty, const unsigned char *chars, size_t size)
 {
-       return tty_insert_flip_string_fixed_flag(tty, chars, TTY_NORMAL, size);
+       return tty_insert_flip_string_fixed_flag(tty->port, chars, TTY_NORMAL, size);
 }
 
 #endif /* _LINUX_TTY_FLIP_H */