From c6af727f3c974f7f656003aed6a9ac8d483b46c8 Mon Sep 17 00:00:00 2001 From: Sandrine Bailleux Date: Mon, 2 Jun 2014 13:52:38 +0100 Subject: [PATCH] PL011: Fix a bug in the UART FIFO polling Before attempting to write a character, the PL011 driver polls the PL011_UARTFR_TXFF bit to know whether the UART FIFO is full. However, the comparison with 1 was incorrect because PL011_UARTFR_TXFF is not at bit 0. This patch fixes it. Change-Id: I4b53c28612f58581c6189ed6c794ed02cc2a89e3 --- drivers/arm/pl011/pl011_console.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/arm/pl011/pl011_console.c b/drivers/arm/pl011/pl011_console.c index 0e82aa21b..a26c00eda 100644 --- a/drivers/arm/pl011/pl011_console.c +++ b/drivers/arm/pl011/pl011_console.c @@ -65,8 +65,10 @@ void console_init(unsigned long base_addr) } -#define WAIT_UNTIL_UART_FREE(base) while ((pl011_read_fr(base)\ - & PL011_UARTFR_TXFF) == 1) +#define WAIT_UNTIL_UART_FREE(base) \ + while ((pl011_read_fr(base) & PL011_UARTFR_TXFF)) \ + continue + int console_putc(int c) { assert(uart_base);