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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to