On 02/01/2017 02:15 AM, Oleksandr Tymoshenko wrote:
> Default fcr value is initialized in ns16550_serial_ofdata_to_platdata
> but this function is only called if OF_CONTROL option is enabled while
> the field is used whenever DM_SERIAL is set. So for configs that
> do not have OF_CONTROL default fcr value is set to zero which leads
> to loosing characters when serial port input is faster than reading
> routine i.e. when copy-pasting long line to U-Boot prompt.
> 
> As a fix initialize fcr field in probe method
> 
> Signed-off-by: Oleksandr Tymoshenko <go...@bluezbox.com>
> Cc: Marek Vasut <ma...@denx.de>
> Cc: Tom Rini <tr...@konsulko.com>
> Cc: Simon Glass <s...@chromium.org>

This looks like the correct fix for the FCR flub instead of patching
each and every board/cpu file.

> ---
>  drivers/serial/ns16550.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
> index 2df4a1f..2b30a4f 100644
> --- a/drivers/serial/ns16550.c
> +++ b/drivers/serial/ns16550.c
> @@ -352,6 +352,7 @@ int ns16550_serial_probe(struct udevice *dev)
>       struct NS16550 *const com_port = dev_get_priv(dev);
>  
>       com_port->plat = dev_get_platdata(dev);
> +     com_port->plat->fcr = UART_FCR_DEFVAL;
>       NS16550_init(com_port, -1);
>  
>       return 0;
> @@ -437,7 +438,6 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev)
>               return -EINVAL;
>       }
>  
> -     plat->fcr = UART_FCR_DEFVAL;
>       if (port_type == PORT_JZ4780)
>               plat->fcr |= UART_FCR_UME;
>  
> 


-- 
Best regards,
Marek Vasut
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to