Skip to content

Commit

Permalink
serial: sh-sci: Avoid FIFO clear for MCE toggle.
Browse files Browse the repository at this point in the history
When toggling the MCE support we don't want to concern ourselves with the
FIFO state, so ensure that the clearing bits are masked out when updating
the MCE state.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed Dec 2, 2011
1 parent faf02f8 commit 73c3d53
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions drivers/tty/serial/sh-sci.c
Original file line number Diff line number Diff line change
Expand Up @@ -1771,18 +1771,25 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,

sci_init_pins(port, termios->c_cflag);

if (s->cfg->capabilities & SCIx_HAVE_RTSCTS) {
reg = sci_getreg(port, SCFCR);
if (reg->size) {
unsigned short ctrl;
reg = sci_getreg(port, SCFCR);
if (reg->size) {
unsigned short ctrl = sci_in(port, SCFCR);

ctrl = sci_in(port, SCFCR);
if (s->cfg->capabilities & SCIx_HAVE_RTSCTS) {
if (termios->c_cflag & CRTSCTS)
ctrl |= SCFCR_MCE;
else
ctrl &= ~SCFCR_MCE;
sci_out(port, SCFCR, ctrl);
}

/*
* As we've done a sci_reset() above, ensure we don't
* interfere with the FIFOs while toggling MCE. As the
* reset values could still be set, simply mask them out.
*/
ctrl &= ~(SCFCR_RFRST | SCFCR_TFRST);

sci_out(port, SCFCR, ctrl);
}

sci_out(port, SCSCR, s->cfg->scscr);
Expand Down

0 comments on commit 73c3d53

Please sign in to comment.