layerscape: add patches-5.4
[openwrt/staging/wigyori.git] / target / linux / layerscape / patches-5.4 / 819-uart-0006-tty-serial-fsl_lpuart-enable-loopback-mode.patch
diff --git a/target/linux/layerscape/patches-5.4/819-uart-0006-tty-serial-fsl_lpuart-enable-loopback-mode.patch b/target/linux/layerscape/patches-5.4/819-uart-0006-tty-serial-fsl_lpuart-enable-loopback-mode.patch
new file mode 100644 (file)
index 0000000..f643b27
--- /dev/null
@@ -0,0 +1,29 @@
+From 4dc6f2b9d454099445b8bc3a4a6328761335ce4d Mon Sep 17 00:00:00 2001
+From: Fugang Duan <fugang.duan@nxp.com>
+Date: Wed, 11 Sep 2019 16:23:25 +0800
+Subject: [PATCH] tty: serial: fsl_lpuart: enable loopback mode
+
+Enable lpuart32 loopback mode.
+
+Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
+---
+ drivers/tty/serial/fsl_lpuart.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/tty/serial/fsl_lpuart.c
++++ b/drivers/tty/serial/fsl_lpuart.c
+@@ -1464,6 +1464,14 @@ static void lpuart32_set_mctrl(struct ua
+               temp |= UARTMODIR_TXCTSE;
+       lpuart32_write(port, temp, UARTMODIR);
++
++      temp = lpuart32_read(port, UARTCTRL);
++      if (mctrl & TIOCM_LOOP)
++              temp |= UARTCTRL_LOOPS;
++      else
++              temp &= ~UARTCTRL_LOOPS;
++
++      lpuart32_write(port, temp, UARTCTRL);
+ }
+ static void lpuart_break_ctl(struct uart_port *port, int break_state)