[PATCH 0/6] serial: samsung: add DMA support

From: Robert Baldyga
Date: Wed Dec 10 2014 - 06:49:55 EST


This patch introduces DMA mode in samsung serial driver. It reduces
number of interrupts and CPU usage while sending large data blocks.

For TX transfers DMA mode is used when number of bytes to send it larger
than TX FIFO size, for smaller transfers PIO mode is used.

For RX transfers DMA mode is used when number of bytes in RX FIFO is
larger than threshold level. If it's not, we obtain RX timeout interrupt
and we receive data in PIO mode.

DMA mode is enabled when "dmas" property is defined in device-tree node
of serial port. Otherwise PIO mode is used.

To have this working, proper residue handling and DMA_PAUSE support in
DMAC driver are necessary. At many samsung platforms DMAC is pl330, which
does not have those features in mainline driver yet, so if you would
like to test series, my patches for pl330 driver are needed. You can
find them here:

Entire series is based on previous work of Sylwester Nawrocki and
Lukasz Czerwinski.

Best regards,
Robert Baldyga

Robert Baldyga (6):
serial: samsung: add struct s3c24xx_uart_dma
serial: samsung: alloc dma stucture in ourport
serial: s3c: add missing register definitions
serial: samsung: add dma reqest/release functions
serial: samsung: add DMA support for TX
serial: samsung: add DMA support for RX

drivers/tty/serial/samsung.c | 582 +++++++++++++++++++++++++++++++++++++++++--
drivers/tty/serial/samsung.h | 42 ++++
include/linux/serial_s3c.h | 28 +++
3 files changed, 634 insertions(+), 18 deletions(-)


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/