OpenCloudOS-Kernel/drivers/tty/serial/8250
Sebastian Andrzej Siewior 0a0661ddb8 tty: serial: 8250: omap: add dma support
This patch adds the required pieces to 8250-OMAP UART driver for DMA
support. The TX burst size is set to 1 so we can send an arbitrary
amount of bytes.

The RX burst is currently set to 48 which means we receive an DMA
interrupt every 48 bytes and have to reprogram everything. Less bytes in
the RX-FIFO mean that no DMA transfer will happen and the UART will send a
RX-timeout _or_ RDI event at which point the FIFO will be manually purged.
There is a workaround for TX-DMA on AM33xx where we put the first byte
into the FIFO to kick start the DMA process. Haven't seen this problem on
OMAP36xx (beagle board xm) or DRA7xx.

On AM375x there is "Usage Note 2.7: UART: Cannot Acknowledge Idle
Requests in Smartidle Mode When Configured for DMA Operations" in the
errata document. This problem persists even after disabling DMA in the
UART and will be addressed in the HWMOD.

v10:
	- delay update_registers() from set_termios() until TX-DMA is
	  done. It has been reported / proved that invoking
	  update_registers() while TX-DMA is in progress may stall the
	  DMA operation and it won't finish.
	- use the new omap DMA-TX-RX hooks and DMA only interrupt
	  routine.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-11-05 19:13:34 -08:00
..
8250.h tty: serial: 8250: omap: add custom irq handling 2014-11-05 19:13:34 -08:00
8250_accent.c
8250_acorn.c tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
8250_boca.c
8250_core.c tty: serial: 8250: omap: add custom irq handling 2014-11-05 19:13:34 -08:00
8250_dma.c tty: serial: 8250: allow to use custom DMA implementation 2014-11-05 19:07:48 -08:00
8250_dw.c Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2014-10-18 18:11:04 -07:00
8250_early.c tty/serial: fix 8250 early console option passing to regular console 2014-06-19 13:07:26 -07:00
8250_em.c tty: delete non-required instances of include <linux/init.h> 2014-01-07 17:05:21 -08:00
8250_exar_st16c554.c
8250_fintek.c serial: Add support for Fintek F81216A LPC to 4 UART 2014-09-08 15:26:26 -07:00
8250_fourport.c
8250_fsl.c serial: 8250: introduce up_to_u8250p() helper 2014-07-17 18:16:23 -07:00
8250_gsc.c parisc: Fix interrupt routing for C8000 serial ports 2013-07-31 23:42:32 +02:00
8250_hp300.c serial: 8250_hp300: trivial: fix symbol name in #warning message 2014-09-08 16:03:47 -07:00
8250_hub6.c
8250_mtk.c tty: serial: 8250: Add Mediatek UART driver 2014-09-10 06:59:41 -07:00
8250_omap.c tty: serial: 8250: omap: add dma support 2014-11-05 19:13:34 -08:00
8250_pci.c 8250_pci: Added driver for Endrun Technologies PTP PCIe card. 2014-11-05 16:36:01 -08:00
8250_pnp.c tty: delete non-required instances of include <linux/init.h> 2014-01-07 17:05:21 -08:00
Kconfig tty: serial: Add 8250-core based omap driver 2014-11-05 19:05:13 -08:00
Makefile tty: serial: Add 8250-core based omap driver 2014-11-05 19:05:13 -08:00
serial_cs.c tty: delete non-required instances of include <linux/init.h> 2014-01-07 17:05:21 -08:00