TTY: cleanup tty->hw_stopped uses
Jiri Slaby [Thu, 7 Mar 2013 12:12:34 +0000 (13:12 +0100)]
tty->hw_stopped is set only by drivers to remember HW state. If it is
never set to 1 in a particular driver, there is no need to check it in
the driver at all. Remove such checks.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

arch/ia64/hp/sim/simserial.c
drivers/isdn/i4l/isdn_tty.c
drivers/net/caif/caif_serial.c
drivers/tty/rocket.c
drivers/tty/serial/68328serial.c
drivers/tty/serial/arc_uart.c
drivers/tty/serial/crisv10.c

index da2f319..e70cade 100644 (file)
@@ -142,8 +142,7 @@ static void transmit_chars(struct tty_struct *tty, struct serial_state *info,
                goto out;
        }
 
-       if (info->xmit.head == info->xmit.tail || tty->stopped ||
-                       tty->hw_stopped) {
+       if (info->xmit.head == info->xmit.tail || tty->stopped) {
 #ifdef SIMSERIAL_DEBUG
                printk("transmit_chars: head=%d, tail=%d, stopped=%d\n",
                       info->xmit.head, info->xmit.tail, tty->stopped);
@@ -181,7 +180,7 @@ static void rs_flush_chars(struct tty_struct *tty)
        struct serial_state *info = tty->driver_data;
 
        if (info->xmit.head == info->xmit.tail || tty->stopped ||
-                       tty->hw_stopped || !info->xmit.buf)
+                       !info->xmit.buf)
                return;
 
        transmit_chars(tty, info, NULL);
@@ -217,7 +216,7 @@ static int rs_write(struct tty_struct * tty,
         * Hey, we transmit directly from here in our case
         */
        if (CIRC_CNT(info->xmit.head, info->xmit.tail, SERIAL_XMIT_SIZE) &&
-                       !tty->stopped && !tty->hw_stopped)
+                       !tty->stopped)
                transmit_chars(tty, info, NULL);
 
        return ret;
@@ -325,14 +324,6 @@ static int rs_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg)
 
 #define RELEVANT_IFLAG(iflag) (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK))
 
-static void rs_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
-{
-       /* Handle turning off CRTSCTS */
-       if ((old_termios->c_cflag & CRTSCTS) &&
-           !(tty->termios.c_cflag & CRTSCTS)) {
-               tty->hw_stopped = 0;
-       }
-}
 /*
  * This routine will shutdown a serial port; interrupts are disabled, and
  * DTR is dropped if the hangup on close termio flag is on.
@@ -481,7 +472,6 @@ static const struct tty_operations hp_ops = {
        .throttle = rs_throttle,
        .unthrottle = rs_unthrottle,
        .send_xchar = rs_send_xchar,
-       .set_termios = rs_set_termios,
        .hangup = rs_hangup,
        .proc_fops = &rs_proc_fops,
 };
index d8a7d83..2210766 100644 (file)
@@ -1470,9 +1470,6 @@ isdn_tty_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
                    tty->termios.c_ospeed == old_termios->c_ospeed)
                        return;
                isdn_tty_change_speed(info);
-               if ((old_termios->c_cflag & CRTSCTS) &&
-                   !(tty->termios.c_cflag & CRTSCTS))
-                       tty->hw_stopped = 0;
        }
 }
 
index 666891a..d1bf0ff 100644 (file)
@@ -88,7 +88,6 @@ static inline void update_tty_status(struct ser_device *ser)
 {
        ser->tty_status =
                ser->tty->stopped << 5 |
-               ser->tty->hw_stopped << 4 |
                ser->tty->flow_stopped << 3 |
                ser->tty->packet << 2 |
                ser->tty->port->low_latency << 1 |
index bbffd7a..f5abc28 100644 (file)
@@ -449,7 +449,7 @@ static void rp_do_transmit(struct r_port *info)
 
        /*  Loop sending data to FIFO until done or FIFO full */
        while (1) {
-               if (tty->stopped || tty->hw_stopped)
+               if (tty->stopped)
                        break;
                c = min(info->xmit_fifo_room, info->xmit_cnt);
                c = min(c, XMIT_BUF_SIZE - info->xmit_tail);
@@ -1106,15 +1106,12 @@ static void rp_set_termios(struct tty_struct *tty,
 
        /* Handle transition away from B0 status */
        if (!(old_termios->c_cflag & CBAUD) && (tty->termios.c_cflag & CBAUD)) {
-               if (!tty->hw_stopped || !(tty->termios.c_cflag & CRTSCTS))
-                       sSetRTS(cp);
+               sSetRTS(cp);
                sSetDTR(cp);
        }
 
-       if ((old_termios->c_cflag & CRTSCTS) && !(tty->termios.c_cflag & CRTSCTS)) {
-               tty->hw_stopped = 0;
+       if ((old_termios->c_cflag & CRTSCTS) && !(tty->termios.c_cflag & CRTSCTS))
                rp_start(tty);
-       }
 }
 
 static int rp_break(struct tty_struct *tty, int break_state)
@@ -1570,10 +1567,10 @@ static int rp_put_char(struct tty_struct *tty, unsigned char ch)
        spin_lock_irqsave(&info->slock, flags);
        cp = &info->channel;
 
-       if (!tty->stopped && !tty->hw_stopped && info->xmit_fifo_room == 0)
+       if (!tty->stopped && info->xmit_fifo_room == 0)
                info->xmit_fifo_room = TXFIFO_SIZE - sGetTxCnt(cp);
 
-       if (tty->stopped || tty->hw_stopped || info->xmit_fifo_room == 0 || info->xmit_cnt != 0) {
+       if (tty->stopped || info->xmit_fifo_room == 0 || info->xmit_cnt != 0) {
                info->xmit_buf[info->xmit_head++] = ch;
                info->xmit_head &= XMIT_BUF_SIZE - 1;
                info->xmit_cnt++;
@@ -1614,14 +1611,14 @@ static int rp_write(struct tty_struct *tty,
 #endif
        cp = &info->channel;
 
-       if (!tty->stopped && !tty->hw_stopped && info->xmit_fifo_room < count)
+       if (!tty->stopped && info->xmit_fifo_room < count)
                info->xmit_fifo_room = TXFIFO_SIZE - sGetTxCnt(cp);
 
         /*
         *  If the write queue for the port is empty, and there is FIFO space, stuff bytes 
         *  into FIFO.  Use the write queue for temp storage.
          */
-       if (!tty->stopped && !tty->hw_stopped && info->xmit_cnt == 0 && info->xmit_fifo_room > 0) {
+       if (!tty->stopped && info->xmit_cnt == 0 && info->xmit_fifo_room > 0) {
                c = min(count, info->xmit_fifo_room);
                b = buf;
 
@@ -1669,7 +1666,7 @@ static int rp_write(struct tty_struct *tty,
                retval += c;
        }
 
-       if ((retval > 0) && !tty->stopped && !tty->hw_stopped)
+       if ((retval > 0) && !tty->stopped)
                set_bit((info->aiop * 8) + info->chan, (void *) &xmit_flags[info->board]);
        
 end:
index 4939947..ef2e08e 100644 (file)
@@ -630,8 +630,7 @@ static void rs_flush_chars(struct tty_struct *tty)
        /* Enable transmitter */
        local_irq_save(flags);
 
-       if (info->xmit_cnt <= 0 || tty->stopped || tty->hw_stopped ||
-                       !info->xmit_buf) {
+       if (info->xmit_cnt <= 0 || tty->stopped || !info->xmit_buf) {
                local_irq_restore(flags);
                return;
        }
@@ -697,7 +696,7 @@ static int rs_write(struct tty_struct * tty,
                total += c;
        }
 
-       if (info->xmit_cnt && !tty->stopped && !tty->hw_stopped) {
+       if (info->xmit_cnt && !tty->stopped) {
                /* Enable transmitter */
                local_irq_disable();            
 #ifndef USE_INTS
@@ -978,10 +977,8 @@ static void rs_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
        change_speed(info, tty);
 
        if ((old_termios->c_cflag & CRTSCTS) &&
-           !(tty->termios.c_cflag & CRTSCTS)) {
-               tty->hw_stopped = 0;
+           !(tty->termios.c_cflag & CRTSCTS))
                rs_start(tty);
-       }
        
 }
 
index d97e194..cbf1d15 100644 (file)
@@ -162,7 +162,7 @@ static unsigned int arc_serial_tx_empty(struct uart_port *port)
 /*
  * Driver internal routine, used by both tty(serial core) as well as tx-isr
  *  -Called under spinlock in either cases
- *  -also tty->stopped / tty->hw_stopped has already been checked
+ *  -also tty->stopped has already been checked
  *     = by uart_start( ) before calling us
  *     = tx_ist checks that too before calling
  */
index 5f37c31..50f56f3 100644 (file)
@@ -2534,8 +2534,7 @@ static void handle_ser_tx_interrupt(struct e100_serial *info)
        }
        /* Normal char-by-char interrupt */
        if (info->xmit.head == info->xmit.tail
-           || info->port.tty->stopped
-           || info->port.tty->hw_stopped) {
+           || info->port.tty->stopped) {
                DFLOW(DEBUG_LOG(info->line, "tx_int: stopped %i\n",
                                info->port.tty->stopped));
                e100_disable_serial_tx_ready_irq(info);
@@ -3098,7 +3097,6 @@ rs_flush_chars(struct tty_struct *tty)
        if (info->tr_running ||
            info->xmit.head == info->xmit.tail ||
            tty->stopped ||
-           tty->hw_stopped ||
            !info->xmit.buf)
                return;
 
@@ -3176,7 +3174,6 @@ static int rs_raw_write(struct tty_struct *tty,
 
        if (info->xmit.head != info->xmit.tail &&
            !tty->stopped &&
-           !tty->hw_stopped &&
            !info->tr_running) {
                start_transmit(info);
        }
@@ -3733,10 +3730,8 @@ rs_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
 
        /* Handle turning off CRTSCTS */
        if ((old_termios->c_cflag & CRTSCTS) &&
-           !(tty->termios.c_cflag & CRTSCTS)) {
-               tty->hw_stopped = 0;
+           !(tty->termios.c_cflag & CRTSCTS))
                rs_start(tty);
-       }
 
 }
 
@@ -4256,9 +4251,6 @@ static void seq_line_info(struct seq_file *m, struct e100_serial *info)
                if (info->port.tty->stopped)
                        seq_printf(m, " stopped:%i",
                                   (int)info->port.tty->stopped);
-               if (info->port.tty->hw_stopped)
-                       seq_printf(m, " hw_stopped:%i",
-                                  (int)info->port.tty->hw_stopped);
        }
 
        {