]> err.no Git - linux-2.6/blobdiff - drivers/serial/uartlite.c
[Blackfin] arch: Add proper SW System Reset delay sequence
[linux-2.6] / drivers / serial / uartlite.c
index dfef83f14960d58de1c9ac7eb793f4aa105dcc72..3f593247c41e0d5e9b255720506bd2da2b872249 100644 (file)
@@ -329,12 +329,14 @@ static struct uart_ops ulite_ops = {
 static void ulite_console_wait_tx(struct uart_port *port)
 {
        int i;
+       u8 val;
 
-       /* wait up to 10ms for the character(s) to be sent */
-       for (i = 0; i < 10000; i++) {
-               if (readb(port->membase + ULITE_STATUS) & ULITE_STATUS_TXEMPTY)
+       /* Spin waiting for TX fifo to have space available */
+       for (i = 0; i < 100000; i++) {
+               val = readb(port->membase + ULITE_STATUS);
+               if ((val & ULITE_STATUS_TXFULL) == 0)
                        break;
-               udelay(1);
+               cpu_relax();
        }
 }
 
@@ -391,6 +393,7 @@ static inline void __init ulite_console_of_find_device(int id)
                        continue;
 
                ulite_ports[id].mapbase = res.start;
+               of_node_put(np);
                return;
        }
 }