提交 e06690bf 编写于 作者: S Shawn Guo 提交者: 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: NSudeep Holla <sudeep.holla@arm.com>
Fixes: 0e125a5f ("tty: amba-pl011: define flag register bits for ZTE device")
Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
Tested-by: NSudeep Holla <sudeep.holla@arm.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 1664bc40
......@@ -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();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册