aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/Kconfig
diff options
context:
space:
mode:
authorChip Coldwell <coldwell@redhat.com>2008-02-08 07:21:06 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-08 12:22:37 -0500
commita66706158d6bc4d9eb29c37852001f78f4c8989c (patch)
treed2d593dc2902c1db1ea6d0ef417dc3426e0b3bae /drivers/serial/Kconfig
parent1ecc26bd2789ddb253f61e182a61c776663fe44c (diff)
atmel_serial: add DMA support
This patch is based on the DMA-patch by Chip Coldwell for the AT91/AT32 serial USARTS, with some tweaks to make it apply neatly on top of the other patches in this series. The RX and TX code has been moved to a tasklet and reworked a bit. Instead of depending on the ENDRX and TIMEOUT bits in CSR, we simply grab as much data as we can from the DMA buffers. I think this closes a race where the ENDRX bit is set after we read CSR but before we read RPR, although I haven't confirmed this. Similarly, the two TX handlers (ENDTX and TXBUFE) have been combined into one. Since the current code only uses a single TX buffer, there's no point in handling those interrupts separately. This also fixes a DMA sync bug in the original patch. [linux@bohmer.net: rebased onto irq-splitup patch] [hskinnemoen@atmel.com: moved to tasklet, fixed dma bug, misc cleanups] [hskinnemoen@atmel.com: atmel_serial dma: Misc fixes and cleanups] Signed-off-by: Remy Bohmer <linux@bohmer.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Andrew Victor <linux@maxim.org.za> Tested-by: Marc Pignat <marc.pignat@hevs.ch> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/serial/Kconfig')
-rw-r--r--drivers/serial/Kconfig15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index 84a054d7e986..b82595cf13e8 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -380,6 +380,21 @@ config SERIAL_ATMEL_CONSOLE
380 console is the device which receives all kernel messages and 380 console is the device which receives all kernel messages and
381 warnings and which allows logins in single user mode). 381 warnings and which allows logins in single user mode).
382 382
383config SERIAL_ATMEL_PDC
384 bool "Support DMA transfers on AT91 / AT32 serial port"
385 depends on SERIAL_ATMEL
386 default y
387 help
388 Say Y here if you wish to use the PDC to do DMA transfers to
389 and from the Atmel AT91 / AT32 serial port. In order to
390 actually use DMA transfers, make sure that the use_dma_tx
391 and use_dma_rx members in the atmel_uart_data struct is set
392 appropriately for each port.
393
394 Note that break and error handling currently doesn't work
395 properly when DMA is enabled. Make sure that ports where
396 this matters don't use DMA.
397
383config SERIAL_ATMEL_TTYAT 398config SERIAL_ATMEL_TTYAT
384 bool "Install as device ttyATn instead of ttySn" 399 bool "Install as device ttyATn instead of ttySn"
385 depends on SERIAL_ATMEL=y 400 depends on SERIAL_ATMEL=y