]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
serial: xuartps: Fix the early_console junk character issue
authorNava kishore Manne <nava.manne@xilinx.com>
Sat, 11 Mar 2017 06:46:24 +0000 (12:16 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 15 Mar 2017 08:02:17 +0000 (09:02 +0100)
In the early_console_setup is trying to access the unregister clock value,
so we are receiving some garbage clk value bacause of this wrong clk value
the early_console_setup is fail to set the required console baud rate.

This path fix this issue.

Signed-off-by: Nava kishore Manne <navam@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/tty/serial/xilinx_uartps.c

index 634b0791e15cf58518a9d8ae309850cf01266164..111f71220a39ce93dfd1ccf44e25845cb13befb7 100644 (file)
@@ -1164,34 +1164,9 @@ static void __init cdns_early_write(struct console *con, const char *s,
 static int __init cdns_early_console_setup(struct earlycon_device *device,
                                           const char *opt)
 {
-       struct uart_port *port = &device->port;
-
-       if (!port->membase)
+       if (!device->port.membase)
                return -ENODEV;
 
-       /* initialise control register */
-       writel(CDNS_UART_CR_TX_EN|CDNS_UART_CR_TXRST|CDNS_UART_CR_RXRST,
-              port->membase + CDNS_UART_CR);
-
-       /* only set baud if specified on command line - otherwise
-        * assume it has been initialized by a boot loader.
-        */
-       if (device->baud) {
-               u32 cd = 0, bdiv = 0;
-               u32 mr;
-               int div8;
-
-               cdns_uart_calc_baud_divs(port->uartclk, device->baud,
-                                        &bdiv, &cd, &div8);
-               mr = CDNS_UART_MR_PARITY_NONE;
-               if (div8)
-                       mr |= CDNS_UART_MR_CLKSEL;
-
-               writel(mr,   port->membase + CDNS_UART_MR);
-               writel(cd,   port->membase + CDNS_UART_BAUDGEN);
-               writel(bdiv, port->membase + CDNS_UART_BAUDDIV);
-       }
-
        device->con->write = cdns_early_write;
 
        return 0;