Merge tag 'qcom-soc-for-3.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[pandora-kernel.git] / drivers / tty / serial / clps711x.c
index 5e6fdb1..14aaea0 100644 (file)
@@ -368,16 +368,12 @@ static const struct uart_ops uart_clps711x_ops = {
 static void uart_clps711x_console_putchar(struct uart_port *port, int ch)
 {
        struct clps711x_port *s = dev_get_drvdata(port->dev);
+       u32 sysflg = 0;
 
        /* Wait for FIFO is not full */
-       while (1) {
-               u32 sysflg = 0;
-
+       do {
                regmap_read(s->syscon, SYSFLG_OFFSET, &sysflg);
-               if (!(sysflg & SYSFLG_UTXFF))
-                       break;
-               cond_resched();
-       }
+       } while (sysflg & SYSFLG_UTXFF);
 
        writew(ch, port->membase + UARTDR_OFFSET);
 }
@@ -387,18 +383,14 @@ static void uart_clps711x_console_write(struct console *co, const char *c,
 {
        struct uart_port *port = clps711x_uart.state[co->index].uart_port;
        struct clps711x_port *s = dev_get_drvdata(port->dev);
+       u32 sysflg = 0;
 
        uart_console_write(port, c, n, uart_clps711x_console_putchar);
 
        /* Wait for transmitter to become empty */
-       while (1) {
-               u32 sysflg = 0;
-
+       do {
                regmap_read(s->syscon, SYSFLG_OFFSET, &sysflg);
-               if (!(sysflg & SYSFLG_UBUSY))
-                       break;
-               cond_resched();
-       }
+       } while (sysflg & SYSFLG_UBUSY);
 }
 
 static int uart_clps711x_console_setup(struct console *co, char *options)