forked from Minki/linux
tty: amba-pl011: uart_amba_port is not available with earlycon function
Commit0e125a5fac
("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: Sudeep Holla <sudeep.holla@arm.com> Fixes:0e125a5fac
("tty: amba-pl011: define flag register bits for ZTE device") Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Tested-by: Sudeep Holla <sudeep.holla@arm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
1664bc40d3
commit
e06690bff6
@ -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();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user