Re: [PATCH v2] serial: pl011: Fix earlycon register LUT breakage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2015-09-05 23:57 GMT+08:00 Jun Nie <jun.nie@xxxxxxxxxx>:
> Commit 7b753f318d14 ("uart: pl011: Introduce register accessor")
> mistakenly used the register LUT i/o accessors for the pl011
> earlycon. Since the port has not been probed at earlycon time,
> the struct uart_amba_port (and register LUTs) are uninitialized.
>
> Use direct register addressing for pl011 earlycon; other h/w supported
> by the amba-pl011 driver should declare an alternate earlycon.
>
> Signed-off-by: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Jun Nie <jun.nie@xxxxxxxxxx>
> ---
>  drivers/tty/serial/amba-pl011.c | 15 +++------------
>  1 file changed, 3 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
> index 2af09ab..cce41e0 100644
> --- a/drivers/tty/serial/amba-pl011.c
> +++ b/drivers/tty/serial/amba-pl011.c
> @@ -326,12 +326,6 @@ static void pl011_writew(struct uart_amba_port *uap, int val, int index)
>         writew_relaxed(val, uap->port.membase + uap->reg_lut[index]);
>  }
>
> -static void pl011_writeb(struct uart_amba_port *uap, u8 val, int index)
> -{
> -       WARN_ON(index > REG_NR);
> -       writeb_relaxed(val, uap->port.membase + uap->reg_lut[index]);
> -}
> -
>  /*
>   * Reads up to 256 characters from the FIFO or until it's empty and
>   * inserts them into the TTY layer. Returns the number of characters
> @@ -2348,13 +2342,10 @@ 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 (pl011_readw(uap, REG_FR) & UART01x_FR_TXFF)
> +       while (readw_relaxed(port->membase + UART01x_FR) & UART01x_FR_TXFF)
>                 ;
> -       pl011_writeb(uap, c, REG_DR);
> -       while (pl011_readw(uap, REG_FR) & uap->fr_busy)
> +       writeb_relaxed(c, port->membase + UART01x_DR);
> +       while (readw_relaxed(port->membase + UART01x_FR) & UART01x_FR_BUSY)
>                 ;
>  }
>
> --
> 1.9.1
>

Could anybody help test this earlycon patch on hardware with standard
pl011 serial? Your help is appreciated and valuable no matter the
previous patch set is carried on or reverted.
Thank you very much!

Jun
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux