aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/sccnxp.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/tty/serial/sccnxp.c')
-rw-r--r--drivers/tty/serial/sccnxp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c
index c5f0e964ec05..c7dec1678f65 100644
--- a/drivers/tty/serial/sccnxp.c
+++ b/drivers/tty/serial/sccnxp.c
@@ -305,14 +305,19 @@ static void sccnxp_handle_rx(struct uart_port *port)
305 if (unlikely(sr)) { 305 if (unlikely(sr)) {
306 if (sr & SR_BRK) { 306 if (sr & SR_BRK) {
307 port->icount.brk++; 307 port->icount.brk++;
308 sccnxp_port_write(port, SCCNXP_CR_REG,
309 CR_CMD_BREAK_RESET);
308 if (uart_handle_break(port)) 310 if (uart_handle_break(port))
309 continue; 311 continue;
310 } else if (sr & SR_PE) 312 } else if (sr & SR_PE)
311 port->icount.parity++; 313 port->icount.parity++;
312 else if (sr & SR_FE) 314 else if (sr & SR_FE)
313 port->icount.frame++; 315 port->icount.frame++;
314 else if (sr & SR_OVR) 316 else if (sr & SR_OVR) {
315 port->icount.overrun++; 317 port->icount.overrun++;
318 sccnxp_port_write(port, SCCNXP_CR_REG,
319 CR_CMD_STATUS_RESET);
320 }
316 321
317 sr &= port->read_status_mask; 322 sr &= port->read_status_mask;
318 if (sr & SR_BRK) 323 if (sr & SR_BRK)