PL011: Fix a bug in the UART FIFO polling
authorSandrine Bailleux <sandrine.bailleux@arm.com>
Mon, 2 Jun 2014 12:52:38 +0000 (13:52 +0100)
committerSandrine Bailleux <sandrine.bailleux@arm.com>
Thu, 5 Jun 2014 13:29:07 +0000 (14:29 +0100)
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: If78892345bbdc8a5e4ae4a1b7159753c609681b0

drivers/arm/pl011/pl011_console.c

index 0e82aa21b79faa805d265ceb5b56a1d128433761..a26c00eda3c2f4f76ccab87462b01c878465bc65 100644 (file)
@@ -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);