Merge tag 'trace-3.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt...
[cascardo/linux.git] / drivers / tty / serial / st-asc.c
index dd3a96e..c7f61ac 100644 (file)
@@ -194,9 +194,9 @@ static inline u32 asc_txfifo_is_empty(struct uart_port *port)
        return asc_in(port, ASC_STA) & ASC_STA_TE;
 }
 
-static inline int asc_txfifo_is_full(struct uart_port *port)
+static inline u32 asc_txfifo_is_half_empty(struct uart_port *port)
 {
-       return asc_in(port, ASC_STA) & ASC_STA_TF;
+       return asc_in(port, ASC_STA) & ASC_STA_THE;
 }
 
 static inline const char *asc_port_name(struct uart_port *port)
@@ -628,7 +628,7 @@ static int asc_get_poll_char(struct uart_port *port)
 
 static void asc_put_poll_char(struct uart_port *port, unsigned char c)
 {
-       while (asc_txfifo_is_full(port))
+       while (!asc_txfifo_is_half_empty(port))
                cpu_relax();
        asc_out(port, ASC_TXBUF, c);
 }
@@ -783,7 +783,7 @@ static void asc_console_putchar(struct uart_port *port, int ch)
        unsigned int timeout = 1000000;
 
        /* Wait for upto 1 second in case flow control is stopping us. */
-       while (--timeout && asc_txfifo_is_full(port))
+       while (--timeout && !asc_txfifo_is_half_empty(port))
                udelay(1);
 
        asc_out(port, ASC_TXBUF, ch);