fsldma: cleanup driver and fix async_tx compatibility
B09055 at freescale.com
Tue Jan 5 17:08:22 EST 2010
I will test it on 85xx hardware and let you know once done.
From: Ira W. Snyder [mailto:iws at ovro.caltech.edu]
Sent: Friday, January 01, 2010 11:41 AM
To: dan.j.williams at intel.com
Cc: galak at kernel.crashing.org; herbert at gondor.apana.org.au; Tabi
Timur-B04825; linuxppc-dev at ozlabs.org; Suresh Vishnu-B05022; Dudhat
Dipen-B09055; Gupta Maneesh-B18878; Li Yang-R58472
Subject: fsldma: cleanup driver and fix async_tx compatibility
This patch series cleans up the Freescale DMAEngine driver, including
verifying the locking and making sure that all code paths are correct.
There were a few places that seemed suspicious, and they have been
I have written a quick memory->memory DMAEngine test driver, and the
performance is identical before and after my changes (<0.1% change). I
measured both setting up the DMA operation (via
device_prep_dma_interrupt() and device_prep_dma_memcpy()) and the actual
DMA transfer itself.
As an added bonus, the interrupt load is measurably reduced. My test
driver transfers 32MB as 32x 1MB chunks + 1 interrupt descriptor, using
the functions noted above. Previous to this patch series, 31 interrupts
were generated. After this patch series, only a single interrupt is
generated for the whole transaction.
Some testing on 85xx/86xx hardware would be appreciated. Also, some
testing by the users attempting to use async_tx and talitos to handle
RAID offload would be great as well.
Documentation/powerpc/dts-bindings/fsl/dma.txt | 17 +-
drivers/dma/fsldma.c | 1036
drivers/dma/fsldma.h | 35 +-
3 files changed, 556 insertions(+), 532 deletions(-)
More information about the Linuxppc-dev