lib: utils: Fix shakti uart implementation
authorVijai Kumar K <vijai@behindbytes.com>
Mon, 7 Dec 2020 16:54:16 +0000 (22:24 +0530)
committerAnup Patel <anup@brainfault.org>
Thu, 7 Jan 2021 04:48:23 +0000 (10:18 +0530)
Fix uart_putc implementation.
Due to a bug in the IP, this went unnoticed.
Use macros instead of magic numbers to make the code
more readable.

Signed-off-by: Vijai Kumar K <vijai@behindbytes.com>
Reviewed-by: Anup Patel <anup.patel@wdc.com>
lib/utils/serial/shakti-uart.c

index 493edcf..7c1148e 100644 (file)
 #define REG_IQ_CYCLES  0x1C
 #define REG_RX_THRES   0x20
 
+#define UART_TX_FULL  0x2
+#define UART_RX_FULL  0x8
+
 static volatile void *uart_base;
 
 void shakti_uart_putc(char ch)
 {
-       while((readw(uart_base + REG_STATUS) & 0x2) == 0);
+       while((readw(uart_base + REG_STATUS) & UART_TX_FULL))
+               ;
        writeb(ch, uart_base + REG_TX);
 }
 
 int shakti_uart_getc(void)
 {
        u16 status = readw(uart_base + REG_STATUS);
-       if (status & 0x8)
+       if (status & UART_RX_FULL)
                return readb(uart_base + REG_RX);
        return -1;
 }