Commit 707f816f authored by Sherry Sun's avatar Sherry Sun Committed by Greg Kroah-Hartman
Browse files

tty: serial: fsl_lpuart: correct the count of break characters



The LPUART can't distinguish between a break signal and a framing error,
so need to count the break characters if there is a framing error and
received data is zero instead of the parity error.

Fixes: 5541a9ba ("serial: fsl_lpuart: handle break and make sysrq work")
Reviewed-by: default avatarMichael Walle <michael@walle.cc>
Signed-off-by: default avatarSherry Sun <sherry.sun@nxp.com>
Link: https://lore.kernel.org/r/20220725050115.12396-1-sherry.sun@nxp.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c7039ce9
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -992,11 +992,11 @@ static void lpuart32_rxint(struct lpuart_port *sport)

		if (sr & (UARTSTAT_PE | UARTSTAT_OR | UARTSTAT_FE)) {
			if (sr & UARTSTAT_PE) {
				sport->port.icount.parity++;
			} else if (sr & UARTSTAT_FE) {
				if (is_break)
					sport->port.icount.brk++;
				else
					sport->port.icount.parity++;
			} else if (sr & UARTSTAT_FE) {
					sport->port.icount.frame++;
			}

@@ -1012,11 +1012,11 @@ static void lpuart32_rxint(struct lpuart_port *sport)
			sr &= sport->port.read_status_mask;

			if (sr & UARTSTAT_PE) {
				flg = TTY_PARITY;
			} else if (sr & UARTSTAT_FE) {
				if (is_break)
					flg = TTY_BREAK;
				else
					flg = TTY_PARITY;
			} else if (sr & UARTSTAT_FE) {
					flg = TTY_FRAME;
			}