Chip Coldwell a66706158d 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>
2008-02-08 09:22:37 -08:00
..
2008-02-07 04:24:01 -05:00
2008-02-05 09:44:23 -08:00
2008-02-06 10:41:15 -08:00
2008-02-07 20:39:44 -05:00
2008-02-07 10:10:28 +00:00
2008-02-08 09:22:32 -08:00
2008-02-08 02:11:39 +00:00
2008-02-03 17:21:01 +02:00
2008-02-07 08:42:23 -08:00
2008-02-07 10:20:31 -08:00
2008-01-31 11:25:51 +11:00
2008-02-06 10:41:08 -08:00
2008-02-07 19:09:22 -08:00
2008-02-08 09:22:37 -08:00
2008-02-03 17:30:25 +02:00
2008-02-01 23:12:19 -05:00
2008-02-06 10:41:07 -08:00