Blackfin Serial Driver: Fix bug - Don't call tx_stop in tx_transfer.
authorSonic Zhang <sonic.zhang@analog.com>
Mon, 13 Oct 2008 09:33:33 +0000 (10:33 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 13 Oct 2008 16:51:38 +0000 (09:51 -0700)
Disable irq and return immediately.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/serial/bfin_5xx.c

index 8d2d757..5e20f50 100644 (file)
@@ -301,7 +301,11 @@ static void bfin_serial_tx_chars(struct bfin_serial_port *uart)
        bfin_serial_mctrl_check(uart);
 
        if (uart_circ_empty(xmit) || uart_tx_stopped(&uart->port)) {
-               bfin_serial_stop_tx(&uart->port);
+#ifdef CONFIG_BF54x
+               /* Clear TFI bit */
+               UART_PUT_LSR(uart, TFI);
+#endif
+               UART_CLEAR_IER(uart, ETBEI);
                return;
        }