mirror of
https://github.com/torvalds/linux.git
synced 2024-12-12 06:02:38 +00:00
serial: sh-sci: Avoid FIFO clear for MCE toggle.
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>
This commit is contained in:
parent
faf02f8fee
commit
73c3d53f38
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user