mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-19 04:14:49 +08:00
serial: sh-sci: Clear RX, error, and break flags during reset
Setting the FIFO reset bits is not sufficient to reset the RX FIFO. After this the status register's RDF flag bit may still be set, causing the reception of one stale byte of data. To fix this, clear all status flag bits related to reception, error, and break handling, cfr. the initialization flowchart in the datasheet. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
44763d3d30
commit
2768cf4287
@ -2152,6 +2152,10 @@ static void sci_reset(struct uart_port *port)
|
||||
reg = sci_getreg(port, SCFCR);
|
||||
if (reg->size)
|
||||
serial_port_out(port, SCFCR, SCFCR_RFRST | SCFCR_TFRST);
|
||||
|
||||
sci_clear_SCxSR(port,
|
||||
SCxSR_RDxF_CLEAR(port) & SCxSR_ERROR_CLEAR(port) &
|
||||
SCxSR_BREAK_CLEAR(port));
|
||||
}
|
||||
|
||||
static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||
|
Loading…
Reference in New Issue
Block a user