linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 0/8] dmaengine: bcm2835: enhancement of driver
@ 2016-01-07 17:32 kernel at martin.sperl.org
  2016-01-07 17:32 ` [PATCH V2 1/8] dmaengine: bcm2835: set residue_granularity field kernel at martin.sperl.org
                   ` (7 more replies)
  0 siblings, 8 replies; 28+ messages in thread
From: kernel at martin.sperl.org @ 2016-01-07 17:32 UTC (permalink / raw)
  To: linux-arm-kernel

From: Martin Sperl <kernel@martin.sperl.org>

This patchset fixes several issues:
* missing residue_granularity to allow better support for I2S
* dma-channels are artificially restricted (channel 0 and 2)
* added correct support for dma-channels 11-14 by using the correct
  shared irq line
  * dma-channel 12 used the "trigger for all" irq resulting in
    a lockup when used
  * note that care was taken so that no change to the device-tree
    was necessary to avoid a break...

With this now 11 DMA channels available instead of 7 - the
additional HW-DMA-channels are:
* 0, 2 (masking of channels)
* 13, 14 (shared interrupts - see also note on channel 12)

It also adds several new features:
* slave_sg support
* dma_memcopy support

For these a consolidated method for creating standard control-block
chains was created to share common between cyclic, slave_sg and
memcopy.

Additional support for memset, memset_sg and interleave
are in the pipeline.

Testing:
* slave_sg
  * spi-bcm2835:
    * fb_st7735r framebuffer
      * tested using mplayer
* cyclic
  * bcm2835-i2s
    * Audio output with a Hifiberry I2S card.
      * tested using mplayer and aplay
* memcopy
  * dmatest

Tests using both slave_sg and cyclic concurrently were also conducted
using mplayer to play BigBuckBunny.

To test that interrupt line sharing was working propperly the same
audio/video test was run only using dma channel 11 to 14 - these
channels are sharing the same interrupt line -

Note that the bcm2835-i2s driver that is currenlty in the kernel
fails to work since:
commit 94cb7f76caa0b337 ("Switch to using the new clock driver support")
and requires modifications to use the clock-driver framework.

For testing a quick and dirty patch had to be used - a patch to use
the clock framework is in the pipeline.

Martin Sperl (8):
  dmaengine: bcm2835: set residue_granularity field
  dmaengine: bcm2835: remove unnecessary masking of dma channels
  dmaengine: bcm2835: use shared interrupt for channel 11 to 14.
  dmaengine: bcm2835: add additional defines for DMA-registers
  dmaengine: bcm2835: move cyclic member from bcm2835_chan into
    bcm2835_desc
  dmaengine: bcm2835: move controlblock chain generation into separate
    method
  dmaengine: bcm2835: add slave_sg support to bcm2835-dma
  dmaengine: bcm2835: add dma_memcopy support to bcm2835-dma

 drivers/dma/bcm2835-dma.c |  541 +++++++++++++++++++++++++++++++++++----------
 1 file changed, 419 insertions(+), 122 deletions(-)

--
1.7.10.4

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

end of thread, other threads:[~2016-03-03 15:45 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-07 17:32 [PATCH V2 0/8] dmaengine: bcm2835: enhancement of driver kernel at martin.sperl.org
2016-01-07 17:32 ` [PATCH V2 1/8] dmaengine: bcm2835: set residue_granularity field kernel at martin.sperl.org
2016-01-28 19:53   ` Eric Anholt
2016-01-07 17:33 ` [PATCH V2 2/8] dmaengine: bcm2835: remove unnecessary masking of dma channels kernel at martin.sperl.org
2016-01-30  3:08   ` Eric Anholt
2016-01-07 17:33 ` [PATCH V2 3/8] dmaengine: bcm2835: use shared interrupt for channel 11 to 14 kernel at martin.sperl.org
2016-01-13 12:26   ` Vinod Koul
2016-01-13 13:30     ` Martin Sperl
2016-01-13 13:43       ` Vinod Koul
2016-01-13 14:24         ` Martin Sperl
2016-01-14  4:07           ` Vinod Koul
2016-01-14  8:48             ` Martin Sperl
2016-02-29 17:10             ` Martin Sperl
2016-03-03 15:45               ` Vinod Koul
2016-02-18  4:09   ` Eric Anholt
2016-01-07 17:33 ` [PATCH V2 4/8] dmaengine: bcm2835: add additional defines for DMA-registers kernel at martin.sperl.org
2016-01-13 12:32   ` Vinod Koul
2016-02-18  4:18   ` Eric Anholt
2016-01-07 17:33 ` [PATCH V2 5/8] dmaengine: bcm2835: move cyclic member from bcm2835_chan into bcm2835_desc kernel at martin.sperl.org
2016-02-18  4:19   ` Eric Anholt
2016-01-07 17:33 ` [PATCH V2 6/8] dmaengine: bcm2835: move controlblock chain generation into separate method kernel at martin.sperl.org
2016-01-13 13:23   ` Vinod Koul
2016-01-13 13:38     ` Martin Sperl
2016-02-18  3:24   ` Eric Anholt
2016-02-29 18:14     ` Martin Sperl
2016-01-07 17:33 ` [PATCH V2 7/8] dmaengine: bcm2835: add slave_sg support to bcm2835-dma kernel at martin.sperl.org
2016-02-18  4:39   ` Eric Anholt
2016-01-07 17:33 ` [PATCH V2 8/8] dmaengine: bcm2835: add dma_memcopy " kernel at martin.sperl.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).