Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752136AbbEGXR1 (ORCPT ); Thu, 7 May 2015 19:17:27 -0400 Received: from mail-lb0-f171.google.com ([209.85.217.171]:33380 "EHLO mail-lb0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751380AbbEGXRV (ORCPT ); Thu, 7 May 2015 19:17:21 -0400 MIME-Version: 1.0 In-Reply-To: <20150507202439.GA4717@breakpoint.cc> References: <20150507202439.GA4717@breakpoint.cc> Date: Thu, 7 May 2015 20:17:19 -0300 Message-ID: Subject: Re: [PATCH] serial: imx: Revert "initialized DMA w/o HW flow enabled" From: Fabio Estevam To: Sebastian Andrzej Siewior Cc: Greg Kroah-Hartman , Sebastian Andrzej Siewior , jiwang , Jiri Slaby , "linux-serial@vger.kernel.org" , linux-kernel , anton_bondarenko@mentor.com, Dirk Behme , Nicolae Rosia , Fabio Estevam Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3191 Lines: 72 On Thu, May 7, 2015 at 5:24 PM, Sebastian Andrzej Siewior wrote: > From: Sebastian Andrzej Siewior > > This basically reverts commit 068500e08dc8 ("serial: imx: initialized > DMA w/o HW flow enabled") simply because it does not work as expected > without additional magic which I am not aware of. The DMA mode is only > used for non-console UARTs so the "standard" boot test won't notice this. > > I tested it on various IMX6 (S and Q) boards and the default SDMA firmware > that is included in ROM does work properly. The SDMA interrupt counter does Here you say that the ROM SDMA works properly. > not stop increment (which means the SDMA does not stop working or the ACK > is working) and I see a lot of 0x00 (sometimes other bytes) which are added > to the tty buffer which are not part of the data transfer. > Jiada claimed that there is a firmware which makes it work but failed to > provide me a link to the firmware. All he said was that it can not be > shipped as part of the kernel due to license issues. I've found a firmware > blob in the FSL-tree but this firmware causes only TTY-overflows an *no* > data is transmitted. > > Currently I see no other way out. > > Fixes: 068500e08dc8 ("serial: imx: initialized DMA w/o HW flow enabled") > Cc: Fabio Estevam > Cc: Jiada Wang > Cc: nicolae.rosia@gmail.com > Signed-off-by: Sebastian Andrzej Siewior > --- > drivers/tty/serial/imx.c | 18 +++++++++++++----- > 1 file changed, 13 insertions(+), 5 deletions(-) > > diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c > index 8aff0b4d8ddf..e686c75fa4dc 100644 > --- a/drivers/tty/serial/imx.c > +++ b/drivers/tty/serial/imx.c > @@ -1113,11 +1113,6 @@ static int imx_startup(struct uart_port *port) > > writel(temp & ~UCR4_DREN, sport->port.membase + UCR4); > > - /* 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); > /* Reset fifo's and state machines */ > i = 100; > @@ -1308,6 +1303,17 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios, > } else { > ucr2 |= UCR2_CTSC; > } > + > + /* > + * Can we enable the DMA support? Be aware that > + * at least IMX6 needs to load external SDMA firmware in > + * order work properly. The in-ROM firmware is not > + * wokring properly. ,but here you say the contrary. With this fixed (and please also Cc stable): Reviewed-by: Fabio Estevam Tested-by: Fabio Estevam -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/