Thread (23 messages) 23 messages, 4 authors, 2014-10-13

[PATCH 09/16] tty: serial: 8250_dma: Add a TX trigger workaround for AM33xx

From: bigeasy@linutronix.de (Sebastian Andrzej Siewior)
Date: 2014-09-25 10:42:20
Also in: linux-omap, linux-serial, lkml

Possibly related (same subject, not in this thread)

* Sebastian Andrzej Siewior | 2014-09-24 09:53:46 [+0200]:
* Peter Hurley | 2014-09-23 13:03:51 [-0400]:
quoted
But DMA is cheating if the UART driver's tx_empty() method is saying the
transmitter is empty while TX DMA is still running.
This shouldn't be the case. But I will check this once I able to.
I added 

|#define BOTH_EMPTY      (UART_LSR_TEMT | UART_LSR_THRE)
|    trace_printk("delay <%d>\n", (lsr & BOTH_EMPTY) == BOTH_EMPTY ? 1 : 0);

in my set_termios() and the trace shows
|              vi-949   [000] d...    70.477002: omap8250_restore_regs: delay <0>

so no, it does not wait until TX FIFO is empty. It looks like it uses
TCSANOW instead of TCSADRAIN. And since this looks "legal" I will delay
it until TX-DMA is complete because it is known to stall the DMA operation.
quoted
Regards,
Peter Hurley
Sebastian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help