a66706158d
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> |
||
---|---|---|
.. | ||
cpm_uart | ||
jsm | ||
8250_accent.c | ||
8250_acorn.c | ||
8250_au1x00.c | ||
8250_boca.c | ||
8250_early.c | ||
8250_exar_st16c554.c | ||
8250_fourport.c | ||
8250_gsc.c | ||
8250_hp300.c | ||
8250_hub6.c | ||
8250_mca.c | ||
8250_pci.c | ||
8250_pnp.c | ||
8250.c | ||
8250.h | ||
21285.c | ||
68328serial.c | ||
68328serial.h | ||
68360serial.c | ||
amba-pl010.c | ||
amba-pl011.c | ||
atmel_serial.c | ||
bfin_5xx.c | ||
clps711x.c | ||
crisv10.c | ||
crisv10.h | ||
dz.c | ||
dz.h | ||
icom.c | ||
icom.h | ||
imx.c | ||
ioc3_serial.c | ||
ioc4_serial.c | ||
ip22zilog.c | ||
ip22zilog.h | ||
Kconfig | ||
m32r_sio_reg.h | ||
m32r_sio.c | ||
m32r_sio.h | ||
Makefile | ||
mcf.c | ||
mcfserial.c | ||
mcfserial.h | ||
mpc52xx_uart.c | ||
mpsc.c | ||
mux.c | ||
netx-serial.c | ||
of_serial.c | ||
pmac_zilog.c | ||
pmac_zilog.h | ||
pnx8xxx_uart.c | ||
pxa.c | ||
s3c2410.c | ||
sa1100.c | ||
sb1250-duart.c | ||
sc26xx.c | ||
serial_core.c | ||
serial_cs.c | ||
serial_ks8695.c | ||
serial_lh7a40x.c | ||
serial_txx9.c | ||
sh-sci.c | ||
sh-sci.h | ||
sn_console.c | ||
suncore.c | ||
suncore.h | ||
sunhv.c | ||
sunsab.c | ||
sunsab.h | ||
sunsu.c | ||
sunzilog.c | ||
sunzilog.h | ||
uartlite.c | ||
ucc_uart.c | ||
v850e_uart.c | ||
vr41xx_siu.c | ||
zs.c | ||
zs.h |