Skip to content

Commit

Permalink
serial: remove termios checks from various old char serial drivers
Browse files Browse the repository at this point in the history
Signed-off-by: Alan Cox <alan@redhat.com>

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Alan Cox authored and Linus Torvalds committed Jul 16, 2007
1 parent d471d34 commit 7e7d136
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 38 deletions.
4 changes: 0 additions & 4 deletions drivers/char/cyclades.c
Original file line number Diff line number Diff line change
Expand Up @@ -4127,10 +4127,6 @@ static void cy_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
printk(KERN_DEBUG "cyc:cy_set_termios ttyC%d\n", info->line);
#endif

if (tty->termios->c_cflag == old_termios->c_cflag &&
(tty->termios->c_iflag & (IXON | IXANY)) ==
(old_termios->c_iflag & (IXON | IXANY)))
return;
set_line_char(info);

if ((old_termios->c_cflag & CRTSCTS) &&
Expand Down
7 changes: 0 additions & 7 deletions drivers/char/esp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1121,8 +1121,6 @@ static void change_speed(struct esp_struct *info)
/*
* Set up parity check flag
*/
#define RELEVANT_IFLAG(iflag) (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK))

info->read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
if (I_INPCK(info->tty))
info->read_status_mask |= UART_LSR_FE | UART_LSR_PE;
Expand Down Expand Up @@ -1920,11 +1918,6 @@ static void rs_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
struct esp_struct *info = (struct esp_struct *)tty->driver_data;
unsigned long flags;

if ( (tty->termios->c_cflag == old_termios->c_cflag)
&& ( RELEVANT_IFLAG(tty->termios->c_iflag)
== RELEVANT_IFLAG(old_termios->c_iflag)))
return;

change_speed(info);

spin_lock_irqsave(&info->lock, flags);
Expand Down
3 changes: 0 additions & 3 deletions drivers/char/istallion.c
Original file line number Diff line number Diff line change
Expand Up @@ -1753,9 +1753,6 @@ static void stli_settermios(struct tty_struct *tty, struct ktermios *old)
return;

tiosp = tty->termios;
if ((tiosp->c_cflag == old->c_cflag) &&
(tiosp->c_iflag == old->c_iflag))
return;

stli_mkasyport(portp, &aport, tiosp);
stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0);
Expand Down
16 changes: 5 additions & 11 deletions drivers/char/mxser.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,6 @@
#define UART_MCR_AFE 0x20
#define UART_LSR_SPECIAL 0x1E

#define RELEVANT_IFLAG(iflag) (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK|\
IXON|IXOFF))

#define IRQ_T(info) ((info->flags & ASYNC_SHARE_IRQ) ? IRQF_SHARED : IRQF_DISABLED)

Expand Down Expand Up @@ -1729,16 +1727,12 @@ static void mxser_set_termios(struct tty_struct *tty, struct ktermios *old_termi
struct mxser_struct *info = tty->driver_data;
unsigned long flags;

if ((tty->termios->c_cflag != old_termios->c_cflag) ||
(RELEVANT_IFLAG(tty->termios->c_iflag) != RELEVANT_IFLAG(old_termios->c_iflag))) {
mxser_change_speed(info, old_termios);

mxser_change_speed(info, old_termios);

if ((old_termios->c_cflag & CRTSCTS) &&
!(tty->termios->c_cflag & CRTSCTS)) {
tty->hw_stopped = 0;
mxser_start(tty);
}
if ((old_termios->c_cflag & CRTSCTS) &&
!(tty->termios->c_cflag & CRTSCTS)) {
tty->hw_stopped = 0;
mxser_start(tty);
}

/* Handle sw stopped */
Expand Down
20 changes: 7 additions & 13 deletions drivers/char/mxser_new.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,6 @@
#define UART_MCR_AFE 0x20
#define UART_LSR_SPECIAL 0x1E

#define RELEVANT_IFLAG(iflag) (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK|\
IXON|IXOFF))

#define C168_ASIC_ID 1
#define C104_ASIC_ID 2
Expand Down Expand Up @@ -1990,18 +1988,14 @@ static void mxser_set_termios(struct tty_struct *tty, struct ktermios *old_termi
struct mxser_port *info = tty->driver_data;
unsigned long flags;

if ((tty->termios->c_cflag != old_termios->c_cflag) ||
(RELEVANT_IFLAG(tty->termios->c_iflag) != RELEVANT_IFLAG(old_termios->c_iflag))) {

spin_lock_irqsave(&info->slock, flags);
mxser_change_speed(info, old_termios);
spin_unlock_irqrestore(&info->slock, flags);
spin_lock_irqsave(&info->slock, flags);
mxser_change_speed(info, old_termios);
spin_unlock_irqrestore(&info->slock, flags);

if ((old_termios->c_cflag & CRTSCTS) &&
!(tty->termios->c_cflag & CRTSCTS)) {
tty->hw_stopped = 0;
mxser_start(tty);
}
if ((old_termios->c_cflag & CRTSCTS) &&
!(tty->termios->c_cflag & CRTSCTS)) {
tty->hw_stopped = 0;
mxser_start(tty);
}

/* Handle sw stopped */
Expand Down

0 comments on commit 7e7d136

Please sign in to comment.