summaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/samsung.h
diff options
context:
space:
mode:
authorRobert Baldyga <r.baldyga@samsung.com>2014-12-10 12:49:26 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-01-09 14:25:39 -0800
commit29bef79908459d20a7a3db654bceb8f3ce4601dc (patch)
tree8bb849de9ccaf8e73e97e88debdc9ee0ae332ff4 /drivers/tty/serial/samsung.h
parent62c37eedb74c8fbf3c92f8f28a871e6bd80c181a (diff)
downloadlinux-stable-29bef79908459d20a7a3db654bceb8f3ce4601dc.tar.gz
linux-stable-29bef79908459d20a7a3db654bceb8f3ce4601dc.tar.bz2
linux-stable-29bef79908459d20a7a3db654bceb8f3ce4601dc.zip
serial: samsung: add DMA support for TX
Add TX DMA transfers support for samsung serial driver. It's enabled when "dmas" property is defined in serial device-tree node, otherwise TX transfers are prerformed using PIO. TX DMA is used for data segments larger than fifosize to reduce number of interrupts during data transmission. For buffers shorter than fifosize PIO mode is selected. Data blocks for DMA transfers are aligned to cache line size to avoid problems with coherency (some areas of TX circ buffer can be used by CPU during DMA transaction, so we have to ensure that our data is always consistent). Based on previous work of Sylwester Nawrocki and Lukasz Czerwinski. Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/samsung.h')
-rw-r--r--drivers/tty/serial/samsung.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/tty/serial/samsung.h b/drivers/tty/serial/samsung.h
index 8dc250c6b472..e60011c591e8 100644
--- a/drivers/tty/serial/samsung.h
+++ b/drivers/tty/serial/samsung.h
@@ -86,6 +86,9 @@ struct s3c24xx_uart_port {
unsigned int rx_irq;
unsigned int tx_irq;
+ unsigned int tx_in_progress;
+ unsigned int tx_mode;
+
struct s3c24xx_uart_info *info;
struct clk *clk;
struct clk *baudclk;