diff options
Diffstat (limited to 'drivers/char/mxser.c')
-rw-r--r-- | drivers/char/mxser.c | 16 |
1 files changed, 5 insertions, 11 deletions
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 */ |