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>
This commit is contained in:
parent
db0fb1848a
commit
1f14081d8b
|
@ -579,7 +579,7 @@ static void atmel_tx_dma(struct uart_port *port)
|
||||||
/* disable PDC transmit */
|
/* disable PDC transmit */
|
||||||
UART_PUT_PTCR(port, ATMEL_PDC_TXTDIS);
|
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,
|
dma_sync_single_for_device(port->dev,
|
||||||
pdc->dma_addr,
|
pdc->dma_addr,
|
||||||
pdc->dma_size,
|
pdc->dma_size,
|
||||||
|
|
Loading…
Reference in New Issue