diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-16 16:56:21 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-16 16:56:21 -0800 |
commit | b0483e78e5c4c9871fc5541875b3bc006846d46b (patch) | |
tree | df73f95975372bf2a635df53041969a367385364 /drivers/serial | |
parent | 18688218d171cb653cbe82d03f72e51b02a5a83e (diff) | |
parent | bca476139d2ded86be146dae09b06e22548b67f3 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
serial: 8250: add serial transmitter fully empty test
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/8250.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index c3e37c8e7e2..e9b15c3746f 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c @@ -83,6 +83,9 @@ static unsigned int skip_txen_test; /* force skip of txen test at init time */ #define PASS_LIMIT 256 +#define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE) + + /* * We default to IRQ0 for the "no irq" hack. Some * machine types want others as well - they're free @@ -1792,7 +1795,7 @@ static unsigned int serial8250_tx_empty(struct uart_port *port) up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; spin_unlock_irqrestore(&up->port.lock, flags); - return lsr & UART_LSR_TEMT ? TIOCSER_TEMT : 0; + return (lsr & BOTH_EMPTY) == BOTH_EMPTY ? TIOCSER_TEMT : 0; } static unsigned int serial8250_get_mctrl(struct uart_port *port) @@ -1850,8 +1853,6 @@ static void serial8250_break_ctl(struct uart_port *port, int break_state) spin_unlock_irqrestore(&up->port.lock, flags); } -#define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE) - /* * Wait for transmitter & holding register to empty */ |