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

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
...@@ -2330,16 +2330,13 @@ static struct console amba_console = { ...@@ -2330,16 +2330,13 @@ static struct console amba_console = {
static void pl011_putc(struct uart_port *port, int c) 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) while (readl(port->membase + UART01x_FR) & UART01x_FR_TXFF)
cpu_relax(); cpu_relax();
if (port->iotype == UPIO_MEM32) if (port->iotype == UPIO_MEM32)
writel(c, port->membase + UART01x_DR); writel(c, port->membase + UART01x_DR);
else else
writeb(c, port->membase + UART01x_DR); 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(); cpu_relax();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment