[LEDE-DEV] [PATCH] imx6: disable UART dma

Koen Vandeputte koen.vandeputte at ncentric.com
Tue May 16 02:57:41 PDT 2017


Fixes these prints on boot:

[   13.785600] imx-uart 2020000.serial: DMA transaction error.
[   13.793134] imx-uart 2020000.serial: DMA transaction error.
[   13.798721] imx-uart 2020000.serial: DMA transaction error.

These error prints can only be seen when viewing the bootlog through
uart.
They are not visible when consulting dmesg.

Based on following upstream patch by Tim Harvey (Gateworks):

https://github.com/Gateworks/openwrt/commit/80a01b6582f94c4547f39d3a25e0a1e9b6eb9877

TX complete DMA messages are getting missed.
This is also currently an issue in mainline.
For now we will disable DMA in serial/imx.c.

This resolves an issue encountered with RS485 transmit.

Signed-off-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
---

WARNING!
This patch is based on kernel 4.9.28 and thus needs following patch applied first:

"kernel: update kernel 4.9 to 4.9.28"


 target/linux/imx6/patches-4.9/210-disable-uart-dma.patch | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 target/linux/imx6/patches-4.9/210-disable-uart-dma.patch

diff --git a/target/linux/imx6/patches-4.9/210-disable-uart-dma.patch b/target/linux/imx6/patches-4.9/210-disable-uart-dma.patch
new file mode 100644
index 0000000..a370420
--- /dev/null
+++ b/target/linux/imx6/patches-4.9/210-disable-uart-dma.patch
@@ -0,0 +1,13 @@
+--- a/drivers/tty/serial/imx.c
++++ b/drivers/tty/serial/imx.c
+@@ -1269,8 +1269,10 @@ static int imx_startup(struct uart_port
+ 	writel(temp & ~UCR4_DREN, sport->port.membase + UCR4);
+ 
+ 	/* Can we enable the DMA support? */
++/*
+ 	if (!uart_console(port) && !sport->dma_is_inited)
+ 		imx_uart_dma_init(sport);
++*/
+ 
+ 	spin_lock_irqsave(&sport->port.lock, flags);
+ 	/* Reset fifo's and state machines */
-- 
2.7.4




More information about the Lede-dev mailing list