aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/mxser.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/mxser.c')
-rw-r--r--drivers/char/mxser.c16
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 */