omap: Add back UART MDR1 check into uncompress.h
authorTony Lindgren <tony@atomide.com>
Mon, 2 Aug 2010 11:21:39 +0000 (14:21 +0300)
committerTony Lindgren <tony@atomide.com>
Mon, 2 Aug 2010 11:21:39 +0000 (14:21 +0300)
Recent DEBUG_LL and uncompress.h changes removed the check_port()
as pointed out by Cory Maccarrone <darkstar6262@gmail.com>.

This causes some boards to not boot, so add back the MDR1 register
check. The MDR1 register tells the mode of omap uart. Based on
an earlier patch by Cory Maccarrone <darkstar6262@gmail.com>.

Tested-by: Cory Maccarrone <darkstar6262@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/plat-omap/include/plat/uncompress.h

index bbedd71943f61caf9d20ca8e4461f721da4410ab..ddf723be48dc997c867226ec5838dd27fe55db05 100644 (file)
@@ -25,6 +25,8 @@
 
 #include <plat/serial.h>
 
+#define MDR1_MODE_MASK                 0x07
+
 static volatile u8 *uart_base;
 static int uart_shift;
 
@@ -42,6 +44,10 @@ static void putc(int c)
        if (!uart_base)
                return;
 
+       /* Check for UART 16x mode */
+       if ((uart_base[UART_OMAP_MDR1 << uart_shift] & MDR1_MODE_MASK) != 0)
+               return;
+
        while (!(uart_base[UART_LSR << uart_shift] & UART_LSR_THRE))
                barrier();
        uart_base[UART_TX << uart_shift] = c;