All of lore.kernel.org
 help / color / mirror / Atom feed
* fsldma: cleanup driver and fix async_tx compatibility
@ 2010-01-01  6:10 Ira W. Snyder
  2010-01-01  6:10 ` [PATCH 1/8] fsldma: reduce kernel text size Ira W. Snyder
                   ` (9 more replies)
  0 siblings, 10 replies; 22+ messages in thread
From: Ira W. Snyder @ 2010-01-01  6:10 UTC (permalink / raw)
  To: dan.j.williams
  Cc: herbert, B04825, linuxppc-dev, Vishnu, Dipen.Dudhat,
	Maneesh.Gupta, R58472

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

^ permalink raw reply	[flat|nested] 22+ messages in thread
* [PATCH 0/8 v2] fsldma: cleanup driver and fix async_tx compatibility
@ 2010-01-06 23:33 Ira W. Snyder
  2010-01-06 23:34 ` [PATCH 6/8] fsldma: simplify IRQ probing and handling Ira W. Snyder
  0 siblings, 1 reply; 22+ messages in thread
From: Ira W. Snyder @ 2010-01-06 23:33 UTC (permalink / raw)
  To: dan.j.williams
  Cc: R58472, B04825, linuxppc-dev, scottwood, Dipen.Dudhat,
	Maneesh.Gupta, herbert

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

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2010-02-02 15:14 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-01  6:10 fsldma: cleanup driver and fix async_tx compatibility Ira W. Snyder
2010-01-01  6:10 ` [PATCH 1/8] fsldma: reduce kernel text size Ira W. Snyder
2010-01-01  6:10 ` [PATCH 2/8] fsldma: remove unused structure members Ira W. Snyder
2010-01-01  6:10 ` [PATCH 3/8] fsldma: rename struct fsl_dma_chan to struct fsldma_chan Ira W. Snyder
2010-01-01  6:10 ` [PATCH 4/8] fsldma: rename dest to dst for uniformity Ira W. Snyder
2010-01-01  6:10 ` [PATCH 5/8] fsldma: clean up the OF subsystem routines Ira W. Snyder
2010-01-01  6:10 ` [PATCH 6/8] fsldma: simplify IRQ probing and handling Ira W. Snyder
2010-01-06 18:02   ` Scott Wood
2010-01-06 18:39     ` Ira W. Snyder
2010-01-06 20:51       ` Scott Wood
2010-01-01  6:10 ` [PATCH 7/8] fsldma: rename fsl_chan to fchan Ira W. Snyder
2010-01-06 18:04   ` Scott Wood
2010-01-06 18:19     ` Ira W. Snyder
2010-01-06 18:27       ` Scott Wood
2010-01-06 18:40         ` Ira W. Snyder
2010-01-01  6:10 ` [PATCH 8/8] fsldma: major cleanups and fixes Ira W. Snyder
2010-01-05  6:08 ` fsldma: cleanup driver and fix async_tx compatibility Dudhat Dipen-B09055
2010-01-11  5:47 ` Dudhat Dipen-B09055
2010-01-11 16:29   ` Ira W. Snyder
2010-02-02  7:50     ` Dudhat Dipen-B09055
2010-02-02 15:04       ` Dan Williams
  -- strict thread matches above, loose matches on Subject: below --
2010-01-06 23:33 [PATCH 0/8 v2] " Ira W. Snyder
2010-01-06 23:34 ` [PATCH 6/8] fsldma: simplify IRQ probing and handling Ira W. Snyder

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.