[PATCH 0/8 v2] fsldma: cleanup driver and fix async_tx compatibility
Ira W. Snyder
iws at ovro.caltech.edu
Thu Jan 7 10:33:58 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 | 8 +
drivers/dma/fsldma.c | 1174 +++++++++++++-----------
drivers/dma/fsldma.h | 35 +-
3 files changed, 675 insertions(+), 542 deletions(-)
v1 -> v2:
- addresses comments from Scott Wood
- prefer per-controller interrupt if available
- rename "fchan" to "chan"
- leave the documentation alone (mostly)
Thanks,
Ira
More information about the Linuxppc-dev
mailing list