diff options
-rw-r--r-- | drivers/char/cyclades.c | 4 | ||||
-rw-r--r-- | drivers/char/esp.c | 7 | ||||
-rw-r--r-- | drivers/char/istallion.c | 3 | ||||
-rw-r--r-- | drivers/char/mxser.c | 16 | ||||
-rw-r--r-- | drivers/char/mxser_new.c | 20 |
5 files changed, 12 insertions, 38 deletions
diff --git a/drivers/char/cyclades.c b/drivers/char/cyclades.c index ca376b92162c..e04005b5f8a6 100644 --- a/drivers/char/cyclades.c +++ b/drivers/char/cyclades.c | |||
@@ -4127,10 +4127,6 @@ static void cy_set_termios(struct tty_struct *tty, struct ktermios *old_termios) | |||
4127 | printk(KERN_DEBUG "cyc:cy_set_termios ttyC%d\n", info->line); | 4127 | printk(KERN_DEBUG "cyc:cy_set_termios ttyC%d\n", info->line); |
4128 | #endif | 4128 | #endif |
4129 | 4129 | ||
4130 | if (tty->termios->c_cflag == old_termios->c_cflag && | ||
4131 | (tty->termios->c_iflag & (IXON | IXANY)) == | ||
4132 | (old_termios->c_iflag & (IXON | IXANY))) | ||
4133 | return; | ||
4134 | set_line_char(info); | 4130 | set_line_char(info); |
4135 | 4131 | ||
4136 | if ((old_termios->c_cflag & CRTSCTS) && | 4132 | if ((old_termios->c_cflag & CRTSCTS) && |
diff --git a/drivers/char/esp.c b/drivers/char/esp.c index d1bfbaa2aa02..74cd5118af57 100644 --- a/drivers/char/esp.c +++ b/drivers/char/esp.c | |||
@@ -1121,8 +1121,6 @@ static void change_speed(struct esp_struct *info) | |||
1121 | /* | 1121 | /* |
1122 | * Set up parity check flag | 1122 | * Set up parity check flag |
1123 | */ | 1123 | */ |
1124 | #define RELEVANT_IFLAG(iflag) (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK)) | ||
1125 | |||
1126 | info->read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR; | 1124 | info->read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR; |
1127 | if (I_INPCK(info->tty)) | 1125 | if (I_INPCK(info->tty)) |
1128 | info->read_status_mask |= UART_LSR_FE | UART_LSR_PE; | 1126 | info->read_status_mask |= UART_LSR_FE | UART_LSR_PE; |
@@ -1920,11 +1918,6 @@ static void rs_set_termios(struct tty_struct *tty, struct ktermios *old_termios) | |||
1920 | struct esp_struct *info = (struct esp_struct *)tty->driver_data; | 1918 | struct esp_struct *info = (struct esp_struct *)tty->driver_data; |
1921 | unsigned long flags; | 1919 | unsigned long flags; |
1922 | 1920 | ||
1923 | if ( (tty->termios->c_cflag == old_termios->c_cflag) | ||
1924 | && ( RELEVANT_IFLAG(tty->termios->c_iflag) | ||
1925 | == RELEVANT_IFLAG(old_termios->c_iflag))) | ||
1926 | return; | ||
1927 | |||
1928 | change_speed(info); | 1921 | change_speed(info); |
1929 | 1922 | ||
1930 | spin_lock_irqsave(&info->lock, flags); | 1923 | spin_lock_irqsave(&info->lock, flags); |
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c index 7b279d1de4a2..809409922996 100644 --- a/drivers/char/istallion.c +++ b/drivers/char/istallion.c | |||
@@ -1753,9 +1753,6 @@ static void stli_settermios(struct tty_struct *tty, struct ktermios *old) | |||
1753 | return; | 1753 | return; |
1754 | 1754 | ||
1755 | tiosp = tty->termios; | 1755 | tiosp = tty->termios; |
1756 | if ((tiosp->c_cflag == old->c_cflag) && | ||
1757 | (tiosp->c_iflag == old->c_iflag)) | ||
1758 | return; | ||
1759 | 1756 | ||
1760 | stli_mkasyport(portp, &aport, tiosp); | 1757 | stli_mkasyport(portp, &aport, tiosp); |
1761 | stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0); | 1758 | stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0); |
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c index 5953a45d7e96..2aee3fef0416 100644 --- a/drivers/char/mxser.c +++ b/drivers/char/mxser.c | |||
@@ -90,8 +90,6 @@ | |||
90 | #define UART_MCR_AFE 0x20 | 90 | #define UART_MCR_AFE 0x20 |
91 | #define UART_LSR_SPECIAL 0x1E | 91 | #define UART_LSR_SPECIAL 0x1E |
92 | 92 | ||
93 | #define RELEVANT_IFLAG(iflag) (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK|\ | ||
94 | IXON|IXOFF)) | ||
95 | 93 | ||
96 | #define IRQ_T(info) ((info->flags & ASYNC_SHARE_IRQ) ? IRQF_SHARED : IRQF_DISABLED) | 94 | #define IRQ_T(info) ((info->flags & ASYNC_SHARE_IRQ) ? IRQF_SHARED : IRQF_DISABLED) |
97 | 95 | ||
@@ -1729,16 +1727,12 @@ static void mxser_set_termios(struct tty_struct *tty, struct ktermios *old_termi | |||
1729 | struct mxser_struct *info = tty->driver_data; | 1727 | struct mxser_struct *info = tty->driver_data; |
1730 | unsigned long flags; | 1728 | unsigned long flags; |
1731 | 1729 | ||
1732 | if ((tty->termios->c_cflag != old_termios->c_cflag) || | 1730 | mxser_change_speed(info, old_termios); |
1733 | (RELEVANT_IFLAG(tty->termios->c_iflag) != RELEVANT_IFLAG(old_termios->c_iflag))) { | ||
1734 | 1731 | ||
1735 | mxser_change_speed(info, old_termios); | 1732 | if ((old_termios->c_cflag & CRTSCTS) && |
1736 | 1733 | !(tty->termios->c_cflag & CRTSCTS)) { | |
1737 | if ((old_termios->c_cflag & CRTSCTS) && | 1734 | tty->hw_stopped = 0; |
1738 | !(tty->termios->c_cflag & CRTSCTS)) { | 1735 | mxser_start(tty); |
1739 | tty->hw_stopped = 0; | ||
1740 | mxser_start(tty); | ||
1741 | } | ||
1742 | } | 1736 | } |
1743 | 1737 | ||
1744 | /* Handle sw stopped */ | 1738 | /* Handle sw stopped */ |
diff --git a/drivers/char/mxser_new.c b/drivers/char/mxser_new.c index 71b965705177..6a563932ba19 100644 --- a/drivers/char/mxser_new.c +++ b/drivers/char/mxser_new.c | |||
@@ -72,8 +72,6 @@ | |||
72 | #define UART_MCR_AFE 0x20 | 72 | #define UART_MCR_AFE 0x20 |
73 | #define UART_LSR_SPECIAL 0x1E | 73 | #define UART_LSR_SPECIAL 0x1E |
74 | 74 | ||
75 | #define RELEVANT_IFLAG(iflag) (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK|\ | ||
76 | IXON|IXOFF)) | ||
77 | 75 | ||
78 | #define C168_ASIC_ID 1 | 76 | #define C168_ASIC_ID 1 |
79 | #define C104_ASIC_ID 2 | 77 | #define C104_ASIC_ID 2 |
@@ -1990,18 +1988,14 @@ static void mxser_set_termios(struct tty_struct *tty, struct ktermios *old_termi | |||
1990 | struct mxser_port *info = tty->driver_data; | 1988 | struct mxser_port *info = tty->driver_data; |
1991 | unsigned long flags; | 1989 | unsigned long flags; |
1992 | 1990 | ||
1993 | if ((tty->termios->c_cflag != old_termios->c_cflag) || | 1991 | spin_lock_irqsave(&info->slock, flags); |
1994 | (RELEVANT_IFLAG(tty->termios->c_iflag) != RELEVANT_IFLAG(old_termios->c_iflag))) { | 1992 | mxser_change_speed(info, old_termios); |
1995 | 1993 | spin_unlock_irqrestore(&info->slock, flags); | |
1996 | spin_lock_irqsave(&info->slock, flags); | ||
1997 | mxser_change_speed(info, old_termios); | ||
1998 | spin_unlock_irqrestore(&info->slock, flags); | ||
1999 | 1994 | ||
2000 | if ((old_termios->c_cflag & CRTSCTS) && | 1995 | if ((old_termios->c_cflag & CRTSCTS) && |
2001 | !(tty->termios->c_cflag & CRTSCTS)) { | 1996 | !(tty->termios->c_cflag & CRTSCTS)) { |
2002 | tty->hw_stopped = 0; | 1997 | tty->hw_stopped = 0; |
2003 | mxser_start(tty); | 1998 | mxser_start(tty); |
2004 | } | ||
2005 | } | 1999 | } |
2006 | 2000 | ||
2007 | /* Handle sw stopped */ | 2001 | /* Handle sw stopped */ |