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

Commit e06690bf authored by Shawn Guo's avatar Shawn Guo Committed by Greg Kroah-Hartman
Browse files

tty: amba-pl011: uart_amba_port is not available with earlycon function



Commit 0e125a5f ("tty: amba-pl011: define flag register bits for ZTE
device") changes earlycon function pl011_putc() to use a pointer to
uart_amba_port.  This causes a regression when earlycon is enabled,
because uart_amba_port is not available yet at earlycon time.  Let's
revert the change on pl011_putc() to fix the regression.

The earlycon support for ZTE device can probably be added later by
declaring a new earlycon setup function with a vendor specific
compatible.

Reported-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Fixes: 0e125a5f ("tty: amba-pl011: define flag register bits for ZTE device")
Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
Tested-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1664bc40
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -2330,16 +2330,13 @@ static struct console amba_console = {

static void pl011_putc(struct uart_port *port, int c)
{
	struct uart_amba_port *uap =
		container_of(port, struct uart_amba_port, port);

	while (readl(port->membase + UART01x_FR) & UART01x_FR_TXFF)
		cpu_relax();
	if (port->iotype == UPIO_MEM32)
		writel(c, port->membase + UART01x_DR);
	else
		writeb(c, port->membase + UART01x_DR);
	while (readl(port->membase + UART01x_FR) & uap->vendor->fr_busy)
	while (readl(port->membase + UART01x_FR) & UART01x_FR_BUSY)
		cpu_relax();
}