summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorStefan Eichenberger <stefan.eichenberger@toradex.com>2024-06-21 17:37:49 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-06-24 16:13:37 +0200
commita81dbd0463eca317eee44985a66aa6cc2ce5c101 (patch)
treeb13423487321ef83371aa1df16c8840d30deb0ac /drivers
parent7c92a8bd53f24d50c8cf4aba53bb75505b382fed (diff)
downloadlinux-stable-a81dbd0463eca317eee44985a66aa6cc2ce5c101.tar.gz
linux-stable-a81dbd0463eca317eee44985a66aa6cc2ce5c101.tar.bz2
linux-stable-a81dbd0463eca317eee44985a66aa6cc2ce5c101.zip
serial: imx: set receiver level before starting uart
Set the receiver level to something > 0 before calling imx_uart_start_rx in rs485_config. This is necessary to avoid an interrupt storm that might prevent the system from booting. This was seen on an i.MX7 device when the rs485-rts-active-low property was active in the device tree. Fixes: 6d215f83e5fc ("serial: imx: warn user when using unsupported configuration") Cc: stable <stable@kernel.org> Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com> Link: https://lore.kernel.org/r/20240621153829.183780-1-eichest@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/tty/serial/imx.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index 2eb22594960f..f4f40c9373c2 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -1952,8 +1952,10 @@ static int imx_uart_rs485_config(struct uart_port *port, struct ktermios *termio
/* Make sure Rx is enabled in case Tx is active with Rx disabled */
if (!(rs485conf->flags & SER_RS485_ENABLED) ||
- rs485conf->flags & SER_RS485_RX_DURING_TX)
+ rs485conf->flags & SER_RS485_RX_DURING_TX) {
+ imx_uart_setup_ufcr(sport, TXTL_DEFAULT, RXTL_DEFAULT);
imx_uart_start_rx(port);
+ }
return 0;
}