Commit f15bd878 authored by Andy Duan's avatar Andy Duan Committed by Stefan Bader

serial: fsl_lpuart: clear parity enable bit when disable parity

BugLink: https://bugs.launchpad.net/bugs/1818813

[ Upstream commit 397bd921 ]

Current driver only enable parity enable bit and never clear it
when user set the termios. The fix clear the parity enable bit when
PARENB flag is not set in termios->c_cflag.

Cc: Lukas Wunner <lukas@wunner.de>
Signed-off-by: default avatarAndy Duan <fugang.duan@nxp.com>
Reviewed-by: default avatarFabio Estevam <festevam@gmail.com>
Acked-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarJuerg Haefliger <juergh@canonical.com>
Signed-off-by: default avatarKhalid Elmously <khalid.elmously@canonical.com>
parent 9fec272c
...@@ -1267,6 +1267,8 @@ lpuart_set_termios(struct uart_port *port, struct ktermios *termios, ...@@ -1267,6 +1267,8 @@ lpuart_set_termios(struct uart_port *port, struct ktermios *termios,
else else
cr1 &= ~UARTCR1_PT; cr1 &= ~UARTCR1_PT;
} }
} else {
cr1 &= ~UARTCR1_PE;
} }
/* ask the core to calculate the divisor */ /* ask the core to calculate the divisor */
...@@ -1402,6 +1404,8 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios, ...@@ -1402,6 +1404,8 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios,
else else
ctrl &= ~UARTCTRL_PT; ctrl &= ~UARTCTRL_PT;
} }
} else {
ctrl &= ~UARTCTRL_PE;
} }
/* ask the core to calculate the divisor */ /* ask the core to calculate the divisor */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment