diff options
author | Itai Levi <itai.levi.devel@gmail.com> | 2009-01-15 13:50:43 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-15 16:39:35 -0800 |
commit | 1f14081d8b31b2780e2e6e2ae2766264e1f7d38b (patch) | |
tree | a6902b80c7baef2e49206a4c44c5f96a98fd6dc6 /drivers/serial/atmel_serial.c | |
parent | db0fb1848a645b0b1b033765f3a5244e7afd2e3c (diff) | |
download | op-kernel-dev-1f14081d8b31b2780e2e6e2ae2766264e1f7d38b.zip op-kernel-dev-1f14081d8b31b2780e2e6e2ae2766264e1f7d38b.tar.gz |
atmel_serial: fix flow control bug
Fix the following problem, related to hardware flow control (CTS/RTS):
Transmitting while CTS line is asserted in DMA mode, due to not checking
for tx-stopped condition.
We found these problems while testing the UARTs with hardware
flow-control.
Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Cc: "Andrew Victor" <avictor.za@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/serial/atmel_serial.c')
-rw-r--r-- | drivers/serial/atmel_serial.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c index d5efd6c..89362d7 100644 --- a/drivers/serial/atmel_serial.c +++ b/drivers/serial/atmel_serial.c @@ -579,7 +579,7 @@ static void atmel_tx_dma(struct uart_port *port) /* disable PDC transmit */ UART_PUT_PTCR(port, ATMEL_PDC_TXTDIS); - if (!uart_circ_empty(xmit)) { + if (!uart_circ_empty(xmit) && !uart_tx_stopped(port)) { dma_sync_single_for_device(port->dev, pdc->dma_addr, pdc->dma_size, |