[PATCH v3 1/3] tty: amba-pl011: define flag register bits for ZTE device
From: shawnguo@kernel.org (Shawn Guo)
Date: 2016-09-17 05:26:05
Also in:
linux-serial
From: shawnguo@kernel.org (Shawn Guo)
Date: 2016-09-17 05:26:05
Also in:
linux-serial
On Fri, Sep 16, 2016 at 03:23:57PM +0100, Sudeep Holla wrote:
quoted
@@ -2303,13 +2325,16 @@ 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) & UART01x_FR_BUSY) + while (readl(port->membase + UART01x_FR) & uap->vendor->fr_busy) cpu_relax(); }The above hunk won't work for early console devices. The earlycon_device just has uart_port and is not uart_amba_port. I don't know how to fix this properly but I thought we could reuse private_data in uart_port for early_con devices. Something like below(incomplete for other vendors, works only for ARM)
Hi Sudeep, Thanks much for the report. I think the best way to fix this is that we revert the change for pl011_putc() function, and figure out a correct approach adding earlycon support for ZTE hardware later. I will send a patch to revert pl011_putc() changes shortly. Thanks, Shawn