fsldma: cleanup driver and fix async_tx compatibility
Ira W. Snyder
iws at ovro.caltech.edu
Fri Jan 1 17:10:38 EST 2010
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 fixed.
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(-)
Thanks,
Ira
More information about the Linuxppc-dev
mailing list