[PATCH] serial: xuartps: Fix the early_console junk character issue

DORMANTno replies

From: Michal Simek <hidden>
Date: 2018-04-04 10:20:47
Also in: linux-serial, lkml
Subsystem: the rest, tty layer and serial drivers · Maintainers: Linus Torvalds, Greg Kroah-Hartman, Jiri Slaby

From: Nava kishore Manne <redacted>

In the early_console_setup is trying to access the unregister clock value,
so we are receiving some garbage clk value because 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 <redacted>
Signed-off-by: Michal Simek <redacted>
---

 drivers/tty/serial/xilinx_uartps.c | 27 +--------------------------
 1 file changed, 1 insertion(+), 26 deletions(-)
diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
index 19d370779767..4176c3a0b4e8 100644
--- a/drivers/tty/serial/xilinx_uartps.c
+++ b/drivers/tty/serial/xilinx_uartps.c
@@ -1130,34 +1130,9 @@ static void 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;
-- 
1.9.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help