Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27cfe4ec authored by Vineet Gupta's avatar Vineet Gupta Committed by Greg Kroah-Hartman
Browse files

serial/arc: Use generic earlycon infrastructure



With this change both earlyprintk and earlycon coexist
We switch over to latter in next patch

Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 5a56d59e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1472,6 +1472,7 @@ config SERIAL_ARC_CONSOLE
	bool "Console on ARC UART"
	depends on SERIAL_ARC=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Enable system Console on ARC UART

+30 −0
Original line number Diff line number Diff line
@@ -638,6 +638,36 @@ static int __init arc_serial_probe_earlyprintk(struct platform_device *pdev)
	register_console(&arc_early_serial_console);
	return 0;
}

static __init void arc_early_serial_write(struct console *con, const char *s,
					  unsigned int n)
{
	struct earlycon_device *dev = con->data;

	uart_console_write(&dev->port, s, n, arc_serial_poll_putchar);
}

static int __init arc_early_console_setup(struct earlycon_device *dev,
					  const char *opt)
{
	struct uart_port *port = &dev->port;
	unsigned int l, h, hw_val;

	if (!dev->port.membase)
		return -ENODEV;

	hw_val = port->uartclk / (dev->baud * 4) - 1;
	l = hw_val & 0xFF;
	h = (hw_val >> 8) & 0xFF;

	UART_SET_BAUDL(port, l);
	UART_SET_BAUDH(port, h);

	dev->con->write = arc_early_serial_write;
	return 0;
}
EARLYCON_DECLARE(arc_uart, arc_early_console_setup);

#endif	/* CONFIG_SERIAL_ARC_CONSOLE */

static int arc_serial_probe(struct platform_device *pdev)