Thread (12 messages) 12 messages, 4 authors, 2012-08-28
DORMANTno replies

[PATCH 2/2] tty: serial: imx: don't reinit clock with enabled console

From: Troy Kisky <hidden>
Date: 2012-08-28 18:45:24
Also in: linux-serial

On 8/28/2012 11:27 AM, Troy Kisky wrote:
On 8/28/2012 3:46 AM, Dirk Behme wrote:
quoted
On 27.08.2012 20:20, Troy Kisky wrote:
quoted
On 8/27/2012 12:36 AM, Dirk Behme wrote:
quoted
From: Xinyu Chen <redacted>

Remove the imx_setup_ufcr() call on startup when CONSOLE enabled,
as this will cause clock reinit, and output garbage.

This patch is a port from Freescale's Android kernel.

Signed-off-by: Xinyu Chen <redacted>
Tested-by: Dirk Behme <redacted>
CC: Shawn Guo <redacted>
CC: Sascha Hauer <s.hauer@pengutronix.de>
---
  drivers/tty/serial/imx.c |    2 ++
  1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index 908178f..31ce414 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -695,7 +695,9 @@ static int imx_startup(struct uart_port *port)
      int retval;
      unsigned long flags, temp;
  +#ifndef CONFIG_SERIAL_CORE_CONSOLE
      imx_setup_ufcr(sport, 0);
+#endif
        /* disable the DREN bit (Data Ready interrupt enable) before
       * requesting IRQs

I'd rather do something like this

static int imx_setup_ufcr(struct imx_port *sport, unsigned int mode)
{
         unsigned int val;

         /* set receiver / transmitter trigger level. */
         val = readl(sport->port.membase + UFCR) & UFCR_RFDIV;
Shouldn't it be

... & (UFCR_RFDIV | UFCR_DCEDTE);

then? My i.MX6 manual has DCEDTE as bit 6, which we don't want to 
touch, too? We only want to touch TXTL and RXTL?
If you do that, you should also change imx_set_termios
to possibly clear the bit

new_ufcr = (old_ufcr & (~UFCR_RFDIV)) | UFCR_RFDIV_REG(div);

to

new_ufcr = (old_ufcr & (~(UFCR_RFDIV | UFCR_DCEDTE))) | 
UFCR_RFDIV_REG(div);
Sorry, I was looking at the wrong tree. Mainline does not have

sport->use_dcedte. I'm fine either way.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help