Patch "Revert "serial: imx: initialized DMA w/o HW flow enabled"" has been added to the 4.1-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
Revert "serial: imx: initialized DMA w/o HW flow enabled"
to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
revert-serial-imx-initialized-dma-w-o-hw-flow-enabled.patch
and it can be found in the queue-4.1 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
907eda32a36fcdb979bdb91ea097abb3dd2c23c9Mon Sep 17 00:00:00 2001
From: David Jander <[email protected]>
Date: Fri, 26 Jun 2015 08:11:30 +0200
Subject: Revert "serial: imx: initialized DMA w/o HW flow enabled"
From: David Jander <[email protected]>
commit 907eda32a36fcdb979bdb91ea097abb3dd2c23c9 upstream.
This reverts commit 068500e08dc87ea9a453cc4a500cf3ab28d0f936.
According to some tests, SDMA support is broken at least for i.MX6 without HW flow control. Different forms of data-corruption appear either with the ROM firmware for the SDMA controller as well as when loading Freescale provided SDMA firmware versions 1.1 or 3.1.
--- drivers/tty/serial/imx.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-)
drivers/tty/serial/imx.c +7 -8
@@ -1132,11 +1132,6 @@ static int imx_startup(struct uart_portwhile (!(readl (sport->port.membase +UCR2 ) &UCR2_SRST ) && (--i >0 ))udelay (1 ); -/* Can we enable the DMA support? */ -if (is_imx6q_uart (sport) && !uart_console (port) && - !sport->dma_is_inited) -imx_uart_dma_init (sport); -spin_lock_irqsave (&sport->port.lock, flags);/*
@@ -1145,9 +1140,6 @@ static int imx_startup(struct uart_portwritel (USR1_RTSD , sport->port.membase +USR1 );writel (USR2_ORE , sport->port.membase +USR2 ); -if (sport->dma_is_inited && !sport->dma_is_enabled) -imx_enable_dma (sport); - temp =readl (sport->port.membase +UCR1 ); temp |=UCR1_RRDYEN |UCR1_RTSDEN |UCR1_UARTEN ;
@@ -1318,6 +1310,11 @@ imx_set_termios(struct uart_port *port, }else { ucr2 |=UCR2_CTSC ; } + +/* Can we enable the DMA support? */ +if (is_imx6q_uart (sport) && !uart_console (port) + && !sport->dma_is_inited) +imx_uart_dma_init (sport); }else { termios->c_cflag &= ~CRTSCTS ; }
@@ -1434,6 +1431,8 @@ imx_set_termios(struct uart_port *port,if (UART_ENABLE_MS (&sport->port, termios->c_cflag))imx_enable_ms (&sport->port); +if (sport->dma_is_inited && !sport->dma_is_enabled) +imx_enable_dma (sport);spin_unlock_irqrestore (&sport->port.lock, flags); }
Patches currently in stable-queue which might be from [email protected] are
queue-4.1/revert-serial-imx-initialized-dma-w-o-hw-flow-enabled.patch