[PATCH -mm v4 0/9] atmel_serial cleanups and improvements
From: Haavard Skinnemoen
Date: Thu Jan 24 2008 - 07:43:44 EST
The following patchset cleans up the atmel_serial driver a bit,
moves a significant portion of the interrupt handler into a tasklet,
and adds DMA support. This is the result of a combined effort by Chip
Coldwell, Remy Bohmer and me. The patches should apply cleanly onto
Linus' latest git tree, and I've also tested it on -mm (with a couple
of avr32 fixes applied to make the rest of the tree compile.)
With DMA, I see transfer rates around 92 kbps when transferring a big
file using ZModem (both directions are roughly the same.) I've also
tested the same thing with a bunch of debug options enabled. The
transfer rate is slightly lower, but no errors are reported.
Note that break and error handling doesn't work too well with DMA
enabled. This is a common problem with all the efforts I've seen
adding DMA support to this driver (including my own). The PDC error
handling also accesses icount without locking. I'm tempted to just
ignore the problem for now and hopefully come up with a solution
later.
I think this stuff is ready for -mm now, but I'd like to see a couple
more ACKs from Andrew Victor and other people who may be familiar with
this driver and/or the serial/tty layer in general.
Changes since v3:
* Added myself to MAINTAINERS
* Additional cleanups suggested by Andrew Victor
* Made PDC support configurable through Kconfig
* Converted lots of potentially unsafe casts to use container_of()
* Show tty name (not just "atmel_serial") in /proc/interrupts
Chip Coldwell (1):
atmel_serial: Add DMA support
Haavard Skinnemoen (6):
MAINTAINERS: Add myself as maintainer of the atmel_serial driver
atmel_serial: Use cpu_relax() when busy-waiting
atmel_serial: Use existing console options only if BRG is running
atmel_serial: Fix bugs in probe() error path and remove()
atmel_serial: Use container_of instead of direct cast
atmel_serial: Show tty name in /proc/interrupts
Remy Bohmer (2):
atmel_serial: Clean up the code
atmel_serial: Split the interrupt handler
MAINTAINERS | 6 +
drivers/serial/Kconfig | 15 +
drivers/serial/atmel_serial.c | 888 +++++++++++++++++++++++++++++++++--------
3 files changed, 740 insertions(+), 169 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/