fsldma: cleanup driver and fix async_tx compatibility

Dudhat Dipen-B09055 B09055 at freescale.com
Tue Jan 5 17:08:22 EST 2010

Hi Ira,

I will test it on 85xx hardware and let you know once done.


-----Original Message-----
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 mailing list