open and close, and instructs the line discipline
                        to empty its input buffer.
 
-chars_in_buffer() -    (optional) Report the number of bytes in the input
-                       buffer.
-
 set_termios()  -       (optional) Called on termios structure changes.
                        The caller passes the old termios data and the
                        current data is in the tty. Called under the
 
        struct serial_state *info = tty->driver_data;
        unsigned long flags;
 #ifdef SERIAL_DEBUG_THROTTLE
-       printk("throttle %s: %d....\n", tty_name(tty),
-              tty->ldisc.chars_in_buffer(tty));
+       printk("throttle %s ....\n", tty_name(tty));
 #endif
 
        if (serial_paranoia_check(info, tty->name, "rs_throttle"))
        struct serial_state *info = tty->driver_data;
        unsigned long flags;
 #ifdef SERIAL_DEBUG_THROTTLE
-       printk("unthrottle %s: %d....\n", tty_name(tty),
-              tty->ldisc.chars_in_buffer(tty));
+       printk("unthrottle %s ....\n", tty_name(tty));
 #endif
 
        if (serial_paranoia_check(info, tty->name, "rs_unthrottle"))
 
        unsigned long flags;
 
 #ifdef CY_DEBUG_THROTTLE
-       printk(KERN_DEBUG "cyc:throttle %s: %ld...ttyC%d\n", tty_name(tty),
-                       tty->ldisc.chars_in_buffer(tty), info->line);
+       printk(KERN_DEBUG "cyc:throttle %s ...ttyC%d\n", tty_name(tty),
+                        info->line);
 #endif
 
        if (serial_paranoia_check(info, tty->name, "cy_throttle"))
        unsigned long flags;
 
 #ifdef CY_DEBUG_THROTTLE
-       printk(KERN_DEBUG "cyc:unthrottle %s: %ld...ttyC%d\n",
-               tty_name(tty), tty_chars_in_buffer(tty), info->line);
+       printk(KERN_DEBUG "cyc:unthrottle %s ...ttyC%d\n",
+               tty_name(tty), info->line);
 #endif
 
        if (serial_paranoia_check(info, tty->name, "cy_unthrottle"))
 
        /* If clogged call tty_throttle(tty); */
 }
 
-/**
- *     gsmld_chars_in_buffer   -       report available bytes
- *     @tty: tty device
- *
- *     Report the number of characters buffered to be delivered to user
- *     at this instant in time.
- *
- *     Locking: gsm lock
- */
-
-static ssize_t gsmld_chars_in_buffer(struct tty_struct *tty)
-{
-       return 0;
-}
-
 /**
  *     gsmld_flush_buffer      -       clean input queue
  *     @tty:   terminal device
        .open            = gsmld_open,
        .close           = gsmld_close,
        .flush_buffer    = gsmld_flush_buffer,
-       .chars_in_buffer = gsmld_chars_in_buffer,
        .read            = gsmld_read,
        .write           = gsmld_write,
        .ioctl           = gsmld_ioctl,
 
        up_write(&tty->termios_rwsem);
 }
 
-/**
- *     n_tty_chars_in_buffer   -       report available bytes
- *     @tty: tty device
- *
- *     Report the number of characters buffered to be delivered to user
- *     at this instant in time.
- *
- *     Locking: exclusive termios_rwsem
- */
-
-static ssize_t n_tty_chars_in_buffer(struct tty_struct *tty)
-{
-       ssize_t n;
-
-       WARN_ONCE(1, "%s is deprecated and scheduled for removal.", __func__);
-
-       down_write(&tty->termios_rwsem);
-       n = chars_in_buffer(tty);
-       up_write(&tty->termios_rwsem);
-       return n;
-}
-
 /**
  *     is_utf8_continuation    -       utf8 multibyte check
  *     @c: byte to check
        .open            = n_tty_open,
        .close           = n_tty_close,
        .flush_buffer    = n_tty_flush_buffer,
-       .chars_in_buffer = n_tty_chars_in_buffer,
        .read            = n_tty_read,
        .write           = n_tty_write,
        .ioctl           = n_tty_ioctl,
 
        struct r_port *info = tty->driver_data;
 
 #ifdef ROCKET_DEBUG_THROTTLE
-       printk(KERN_INFO "throttle %s: %d....\n", tty->name,
-              tty->ldisc.chars_in_buffer(tty));
+       printk(KERN_INFO "throttle %s ....\n", tty->name);
 #endif
 
        if (rocket_paranoia_check(info, "rp_throttle"))
 {
        struct r_port *info = tty->driver_data;
 #ifdef ROCKET_DEBUG_THROTTLE
-       printk(KERN_INFO "unthrottle %s: %d....\n", tty->name,
-              tty->ldisc.chars_in_buffer(tty));
+       printk(KERN_INFO "unthrottle %s ....\n", tty->name);
 #endif
 
        if (rocket_paranoia_check(info, "rp_unthrottle"))
 
 
        local_save_flags(flags);
        DFLOW(DEBUG_LOG(info->line, "write count %i ", count));
-       DFLOW(DEBUG_LOG(info->line, "ldisc %i\n", tty->ldisc.chars_in_buffer(tty)));
+       DFLOW(DEBUG_LOG(info->line, "ldisc\n"));
 
 
        /* The local_irq_disable/restore_flags pairs below are needed
 {
        struct e100_serial *info = (struct e100_serial *)tty->driver_data;
 #ifdef SERIAL_DEBUG_THROTTLE
-       printk("throttle %s: %lu....\n", tty_name(tty),
-              (unsigned long)tty->ldisc.chars_in_buffer(tty));
+       printk("throttle %s ....\n", tty_name(tty));
 #endif
-       DFLOW(DEBUG_LOG(info->line,"rs_throttle %lu\n", tty->ldisc.chars_in_buffer(tty)));
+       DFLOW(DEBUG_LOG(info->line,"rs_throttle\n"));
 
        /* Do RTS before XOFF since XOFF might take some time */
        if (tty->termios.c_cflag & CRTSCTS) {
 {
        struct e100_serial *info = (struct e100_serial *)tty->driver_data;
 #ifdef SERIAL_DEBUG_THROTTLE
-       printk("unthrottle %s: %lu....\n", tty_name(tty),
-              (unsigned long)tty->ldisc.chars_in_buffer(tty));
+       printk("unthrottle %s ....\n", tty_name(tty));
 #endif
-       DFLOW(DEBUG_LOG(info->line,"rs_unthrottle ldisc %d\n", tty->ldisc.chars_in_buffer(tty)));
+       DFLOW(DEBUG_LOG(info->line,"rs_unthrottle ldisc\n"));
        DFLOW(DEBUG_LOG(info->line,"rs_unthrottle flip.count: %i\n", tty->flip.count));
        /* Do RTS before XOFF since XOFF might take some time */
        if (tty->termios.c_cflag & CRTSCTS) {
 
  *     buffers of any input characters it may have queued to be
  *     delivered to the user mode process.
  *
- * ssize_t (*chars_in_buffer)(struct tty_struct *tty);
- *
- *     This function returns the number of input characters the line
- *     discipline may have queued up to be delivered to the user mode
- *     process.
- *
  * ssize_t (*read)(struct tty_struct * tty, struct file * file,
  *                unsigned char * buf, size_t nr);
  *
        int     (*open)(struct tty_struct *);
        void    (*close)(struct tty_struct *);
        void    (*flush_buffer)(struct tty_struct *tty);
-       ssize_t (*chars_in_buffer)(struct tty_struct *tty);
        ssize_t (*read)(struct tty_struct *tty, struct file *file,
                        unsigned char __user *buf, size_t nr);
        ssize_t (*write)(struct tty_struct *tty, struct file *file,