linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/5] R-Car Gen2 DMA Controller driver
@ 2014-10-30  0:28 Laurent Pinchart
  2014-10-30 14:26 ` Wolfram Sang
  0 siblings, 1 reply; 2+ messages in thread
From: Laurent Pinchart @ 2014-10-30  0:28 UTC (permalink / raw)
  To: linux-sh

Hello,

This patch sets adds a new driver for the DMA controller found in the R-Car
Gen2 SoCs under the name "Direct Memory Access Controller for System
(SYS-DMAC)". Support for the "Realtime Direct Memory Access Controller
(RT-DMAC)" and "Direct Memory Access Controller for Audio (Audio-DMAC)" will
be added later.

For the rationale of why a new driver is needed, and performance figures,
please see the cover letter of v1 ("[PATCH 0/7] R-Car Gen2 DMA Controller
driver") [1].

The driver is now mostly feature-complete with support for hardware
descriptors lists (included as a separate patch to ease review) and cyclic
transfers. They have been tested with both the SDHI and audio drivers.

I've pushed the patches to

	git://linuxtv.org/pinchartl/fbdev.git dma/next

My audio test branch is available at

	git://linuxtv.org/pinchartl/fbdev.git dma/audio

Known issues are

- Stub system PM implementation. I'm working on this.

- Risk of conflict with Maxime's DMA engine rework series.

I believe the first issue isn't a show stopper. I can rebase the patches if
Maxime's patches get merged first.

Vinod, I would like to get this merged in v3.19 if possible.

Changes since v3:

- Add CONFIG_RENESAS_DMA config entry common to all Renesas DMA engines
- Add support for hardware descriptors lists previously posted as a separate
  patch series, with the following changes:
  - Typo fixes
  - Use GFP_NOWAIT to allocate hardware descriptors
  - Clear descriptor stage end interrupt when halting the channel
  - Program the descriptor interrupt pointer
  - Stop the channel in the IRQ handler only at the end of the transfer
  - Align allocated hwdesc size to page size
  - Ignore allocated hwdesc memory when the transfer doesn't use hwdescs

Changes since v2: 
 
- Replace several occurrences of size_t with unsigned int
- Remove unneeded local variable initialization
- Compute maximum transfer size at runtime
- Typo fixes
- Replace WARN_ON with WARN_ON_ONCE in interrupt handler
- Validate the number of channels
- Reset the device before enabling interrupts
- Use DMA_SLAVE_BUSWIDTH_* constants instead of numerical values
- Use devm_kasprintf
- Update to the new prep_dma_cyclic API
- Filter out channels from unrelated devices
- Fix typo in register definition
- Rename rcar_dmac_hw_desc to rcar_dmac_xfer_chunk
- Ignore the deprecated dma_slave_config direction field
- Allocate memory with GFP_NOWAIT in prep handlers
- Split runtime and system PM
- Move runtime PM to channel alloc/fre

Changes since v1:

- Allocate IRQ name strings dynamically
- Only call the callback function if one is supplied
- Don't overallocate sg list entries
- Allocate sg list entries with GFP_KERNEL
- Don't manage function clock manually
- Make channel filter ignore unrelated devices
- Document why the cyclic sg list is kcalloc'ed
- Remove ch15 from interrupt names in DT
- Replace CONFIG_OF with OF in Kconfig

[1] http://www.spinics.net/lists/linux-sh/msg33768.html

Laurent Pinchart (5):
  dmaengine: Add 16 bytes, 32 bytes and 64 bytes bus widths
  dmaengine: rcar-dmac: Remove duplicate sentence from DT bindings
  dmaengine: rcar-dmac: Add Renesas R-Car Gen2 DMA Controller (DMAC)
    driver
  dmaengine: rcar-dmac: Implement support for hardware descriptor lists
  dmaengine: rcar-dmac: Cache hardware descriptors memory

 .../devicetree/bindings/dma/renesas,rcar-dmac.txt  |    3 -
 drivers/dma/Makefile                               |    2 +-
 drivers/dma/sh/Kconfig                             |   14 +-
 drivers/dma/sh/Makefile                            |    1 +
 drivers/dma/sh/rcar-dmac.c                         | 1773 ++++++++++++++++++++
 include/linux/dmaengine.h                          |    3 +
 6 files changed, 1791 insertions(+), 5 deletions(-)
 create mode 100644 drivers/dma/sh/rcar-dmac.c

-- 
Regards,

Laurent Pinchart


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

end of thread, other threads:[~2014-10-30 14:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-30  0:28 [PATCH v4 0/5] R-Car Gen2 DMA Controller driver Laurent Pinchart
2014-10-30 14:26 ` Wolfram Sang

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).