[PATCH v2] serial: pl011: Resend the character if FIFO is full in debug uart

pl01x_putc() might return -EAGAIN if there was no space in FIFO. In that case, high-level caller should wait until there is space and resend the character.
Signed-off-by: Chen Baozi chenbaozi@phytium.com.cn Reviewed-by: Stefan Roese sr@denx.de --- drivers/serial/serial_pl01x.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c index 76b96ad414..8ff19acf33 100644 --- a/drivers/serial/serial_pl01x.c +++ b/drivers/serial/serial_pl01x.c @@ -417,7 +417,8 @@ static inline void _debug_uart_putc(int ch) { struct pl01x_regs *regs = (struct pl01x_regs *)CONFIG_DEBUG_UART_BASE;
- pl01x_putc(regs, ch); + while (pl01x_putc(regs, ch) == -EAGAIN) + ; }
DEBUG_UART_FUNCS

On Mon, 19 Jul 2021 at 01:36, Chen Baozi chenbaozi@phytium.com.cn wrote:
pl01x_putc() might return -EAGAIN if there was no space in FIFO. In that case, high-level caller should wait until there is space and resend the character.
Signed-off-by: Chen Baozi chenbaozi@phytium.com.cn Reviewed-by: Stefan Roese sr@denx.de
drivers/serial/serial_pl01x.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org

On Mon, Jul 19, 2021 at 03:36:04PM +0800, Chen Baozi wrote:
pl01x_putc() might return -EAGAIN if there was no space in FIFO. In that case, high-level caller should wait until there is space and resend the character.
Signed-off-by: Chen Baozi chenbaozi@phytium.com.cn Reviewed-by: Stefan Roese sr@denx.de Reviewed-by: Simon Glass sjg@chromium.org
Applied to u-boot/master, thanks!
participants (3)
-
Chen Baozi
-
Simon Glass
-
Tom Rini