All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 00/14] DMA Engine support for AM33XX
@ 2013-01-15 20:32 ` Matt Porter
  0 siblings, 0 replies; 105+ messages in thread
From: Matt Porter @ 2013-01-15 20:32 UTC (permalink / raw)
  To: Tony Lindgren, Sekhar Nori, Grant Likely, Mark Brown,
	Benoit Cousson, Russell King, Vinod Koul, Rob Landley,
	Chris Ball
  Cc: Devicetree Discuss, Linux OMAP List, Linux ARM Kernel List,
	Linux DaVinci Kernel List, Linux Kernel Mailing List,
	Linux Documentation List, Linux MMC List, Linux SPI Devel List,
	Arnd Bergmann, Dan Williams, Rob Herring

Changes since v4:
	- Fixed debug section mismatch in private edma api [01/14]
	- Respun format-patch to catch the platform_data/edma.h rename [01/14]
	- Removed address/size-cells from the EDMA binding [05/14]

Changes since v3:
	- Rebased on 3.8-rc3
	- No longer an RFC
	- Fixed bugs in DT/pdata parsing reported by Vaibhav Bedia
	- Restored all the Davinci pdata to const
	- Removed max_segs hack in favor of using dma_get_channel_caps()
	- Fixed extra parens, __raw_* accessors and, ioremap error checks
	  in xbar handling
	- Removed excess license info in platform_data/edma.h
	- Removed unneeded reserved channels data for AM33xx
	- Removed test-specific pinmuxing from dts files
	- Adjusted mmc1 node to be disabled by default in the dtsi

Changes since v2:
	- Rebased on 3.7-rc1
	- Fixed bug in DT/pdata parsing first found by Gururaja
	  that turned out to be masked by some toolchains
	- Dropped unused mach-omap2/devices.c hsmmc patch
	- Added AM33XX crossbar DMA event mux support
	- Added am335x-evm support

Changes since v1:
	- Rebased on top of mainline from 12250d8
	- Dropped the feature removal schedule patch
	- Implemented dma_request_slave_channel_compat() and
	  converted the mmc and spi drivers to use it
	- Dropped unneeded #address-cells and #size-cells from
	  EDMA DT support
	- Moved private EDMA header to linux/platform_data/ and
	  removed some unneeded definitions
	- Fixed parsing of optional properties

This series adds DMA Engine support for AM33xx, which uses
an EDMA DMAC. The EDMA DMAC has been previously supported by only
a private API implementation (much like the situation with OMAP
DMA) found on the DaVinci family of SoCs.

The series applies on top of 3.8-rc3 and the following patches:

	- TPS65910 REGMAP_IRQ build fix:
	  https://patchwork.kernel.org/patch/1857701/
	- dmaengine DT support from Vinod's dmaengine_dt branch in
	  git://git.infradead.org/users/vkoul/slave-dma.git since
	  027478851791df751176398be02a3b1c5f6aa824
	- edma dmaengine driver fix:
	  https://patchwork.kernel.org/patch/1961521/
	- dmaengine dma_get_channel_caps v2:
	  https://patchwork.kernel.org/patch/1961601/
	- dmaengine edma driver channel caps support v2:
	  https://patchwork.kernel.org/patch/1961591/

The approach taken is similar to how OMAP DMA is being converted to
DMA Engine support. With the functional EDMA private API already
existing in mach-davinci/dma.c, we first move that to an ARM common
area so it can be shared. Adding DT and runtime PM support to the
private EDMA API implementation allows it to run on AM33xx. AM33xx
*only* boots using DT so we leverage Jon's generic DT DMA helpers to
register EDMA DMAC with the of_dma framework and then add support
for calling the dma_request_slave_channel() API to both the mmc
and spi drivers.

With this series both BeagleBone and the AM335x EVM have working
MMC and SPI support.

This is tested on BeagleBone with a SPI framebuffer driver and MMC
rootfs. A trivial gpio DMA event misc driver was used to test the
crossbar DMA event support. It is also tested on the AM335x EVM
with the onboard SPI flash and MMC rootfs. The branch at
https://github.com/ohporter/linux/tree/edma-dmaengine-am33xx-v4
has the complete series, dependencies, and some test
drivers/defconfigs.

Regression testing was done on AM180x-EVM (which also makes use
of the EDMA dmaengine driver and the EDMA private API) using SD,
SPI flash, and the onboard audio supported by the ASoC Davinci
driver. Regression testing was also done on a BeagleBoard xM
booting from the legacy board file using MMC rootfs.

Matt Porter (14):
  ARM: davinci: move private EDMA API to arm/common
  ARM: edma: remove unused transfer controller handlers
  ARM: edma: add AM33XX support to the private EDMA API
  dmaengine: edma: enable build for AM33XX
  dmaengine: edma: Add TI EDMA device tree binding
  ARM: dts: add AM33XX EDMA support
  dmaengine: add dma_request_slave_channel_compat()
  mmc: omap_hsmmc: convert to dma_request_slave_channel_compat()
  mmc: omap_hsmmc: set max_segs based on dma engine limitations
  mmc: omap_hsmmc: add generic DMA request support to the DT binding
  ARM: dts: add AM33XX MMC support
  spi: omap2-mcspi: convert to dma_request_slave_channel_compat()
  spi: omap2-mcspi: add generic DMA request support to the DT binding
  ARM: dts: add AM33XX SPI DMA support

 Documentation/devicetree/bindings/dma/ti-edma.txt  |   49 +++
 .../devicetree/bindings/mmc/ti-omap-hsmmc.txt      |   25 +-
 Documentation/devicetree/bindings/spi/omap-spi.txt |   28 +-
 arch/arm/Kconfig                                   |    1 +
 arch/arm/boot/dts/am335x-bone.dts                  |    7 +
 arch/arm/boot/dts/am335x-evm.dts                   |    7 +
 arch/arm/boot/dts/am335x-evmsk.dts                 |    7 +
 arch/arm/boot/dts/am33xx.dtsi                      |   58 ++++
 arch/arm/common/Kconfig                            |    3 +
 arch/arm/common/Makefile                           |    1 +
 arch/arm/{mach-davinci/dma.c => common/edma.c}     |  355 +++++++++++++++++---
 arch/arm/mach-davinci/Makefile                     |    2 +-
 arch/arm/mach-davinci/board-tnetv107x-evm.c        |    2 +-
 arch/arm/mach-davinci/davinci.h                    |    2 +-
 arch/arm/mach-davinci/devices-tnetv107x.c          |    2 +-
 arch/arm/mach-davinci/devices.c                    |    7 +-
 arch/arm/mach-davinci/dm355.c                      |    2 +-
 arch/arm/mach-davinci/dm365.c                      |    2 +-
 arch/arm/mach-davinci/dm644x.c                     |    2 +-
 arch/arm/mach-davinci/dm646x.c                     |    2 +-
 arch/arm/mach-davinci/include/mach/da8xx.h         |    2 +-
 arch/arm/plat-omap/Kconfig                         |    1 +
 drivers/dma/Kconfig                                |    2 +-
 drivers/dma/edma.c                                 |    2 +-
 drivers/mmc/host/davinci_mmc.c                     |    1 +
 drivers/mmc/host/omap_hsmmc.c                      |   16 +-
 drivers/spi/spi-omap2-mcspi.c                      |   65 ++--
 include/linux/dmaengine.h                          |   10 +
 include/linux/mfd/davinci_voicecodec.h             |    3 +-
 .../mach => include/linux/platform_data}/edma.h    |   90 +----
 include/linux/platform_data/spi-davinci.h          |    2 +-
 sound/soc/davinci/davinci-evm.c                    |    1 +
 sound/soc/davinci/davinci-pcm.c                    |    1 +
 sound/soc/davinci/davinci-pcm.h                    |    2 +-
 sound/soc/davinci/davinci-sffsdr.c                 |    6 +-
 35 files changed, 588 insertions(+), 180 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/dma/ti-edma.txt
 rename arch/arm/{mach-davinci/dma.c => common/edma.c} (85%)
 rename {arch/arm/mach-davinci/include/mach => include/linux/platform_data}/edma.h (59%)

-- 
1.7.9.5


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

end of thread, other threads:[~2013-01-31  1:31 UTC | newest]

Thread overview: 105+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-15 20:32 [PATCH v5 00/14] DMA Engine support for AM33XX Matt Porter
2013-01-15 20:32 ` Matt Porter
2013-01-15 20:32 ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 01/14] ARM: davinci: move private EDMA API to arm/common Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 02/14] ARM: edma: remove unused transfer controller handlers Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 03/14] ARM: edma: add AM33XX support to the private EDMA API Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-28 19:27   ` Andy Shevchenko
2013-01-28 19:27     ` Andy Shevchenko
2013-01-28 19:27     ` Andy Shevchenko
2013-01-28 19:27     ` Andy Shevchenko
2013-01-30  6:41     ` Matt Porter
2013-01-30  6:41       ` Matt Porter
2013-01-30  6:41       ` Matt Porter
2013-01-30  7:40       ` Andy Shevchenko
2013-01-30  7:40         ` Andy Shevchenko
2013-01-30  7:40         ` Andy Shevchenko
2013-01-30  7:40         ` Andy Shevchenko
2013-01-31  1:31         ` Matt Porter
2013-01-31  1:31           ` Matt Porter
2013-01-31  1:31           ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 04/14] dmaengine: edma: enable build for AM33XX Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 05/14] dmaengine: edma: Add TI EDMA device tree binding Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 06/14] ARM: dts: add AM33XX EDMA support Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 07/14] dmaengine: add dma_request_slave_channel_compat() Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-23 22:28   ` Arnd Bergmann
2013-01-23 22:28     ` Arnd Bergmann
2013-01-23 22:28     ` Arnd Bergmann
2013-01-30  6:36     ` Matt Porter
2013-01-30  6:36       ` Matt Porter
2013-01-30  6:36       ` Matt Porter
2013-01-28 19:34   ` Andy Shevchenko
2013-01-28 19:34     ` Andy Shevchenko
2013-01-28 19:34     ` Andy Shevchenko
2013-01-28 19:34     ` Andy Shevchenko
2013-01-28 19:57     ` Arnd Bergmann
2013-01-28 19:57       ` Arnd Bergmann
2013-01-28 19:57       ` Arnd Bergmann
2013-01-15 20:32 ` [PATCH v5 08/14] mmc: omap_hsmmc: convert to dma_request_slave_channel_compat() Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 09/14] mmc: omap_hsmmc: set max_segs based on dma engine limitations Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 10/14] mmc: omap_hsmmc: add generic DMA request support to the DT binding Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 11/14] ARM: dts: add AM33XX MMC support Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 12/14] spi: omap2-mcspi: convert to dma_request_slave_channel_compat() Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 13/14] spi: omap2-mcspi: add generic DMA request support to the DT binding Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32 ` [PATCH v5 14/14] ARM: dts: add AM33XX SPI DMA support Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-15 20:32   ` Matt Porter
2013-01-22 15:56 ` [PATCH v5 00/14] DMA Engine support for AM33XX Sekhar Nori
2013-01-22 15:56   ` Sekhar Nori
2013-01-22 15:56   ` Sekhar Nori
2013-01-23  2:21   ` Mark Brown
2013-01-23  2:21     ` Mark Brown
2013-01-23  2:21     ` Mark Brown
2013-01-23 10:49     ` Sekhar Nori
2013-01-23 10:49       ` Sekhar Nori
2013-01-23 10:49       ` Sekhar Nori
2013-01-23 21:37     ` Matt Porter
2013-01-23 21:37       ` Matt Porter
2013-01-23 21:37       ` Matt Porter
2013-01-24  5:14       ` Sekhar Nori
2013-01-24  5:14         ` Sekhar Nori
2013-01-24  5:14         ` Sekhar Nori
     [not found]       ` <d07dbfd50690423b903803720152c0dc@DLEE74.ent.ti.com>
2013-01-24 20:42         ` Matt Porter
2013-01-24 20:42           ` Matt Porter
2013-01-24 20:42           ` Matt Porter
2013-01-23 11:07 ` Santosh Shilimkar
2013-01-23 11:07   ` Santosh Shilimkar
2013-01-23 11:07   ` Santosh Shilimkar
2013-01-23 20:49   ` Matt Porter
2013-01-23 20:49     ` Matt Porter
2013-01-23 20:49     ` Matt Porter
2013-01-24  5:12     ` Santosh Shilimkar
2013-01-24  5:12       ` Santosh Shilimkar
2013-01-24  5:12       ` Santosh Shilimkar
     [not found]     ` <8ea1d227d84648f68e670c56f27c481e@DFLE72.ent.ti.com>
2013-01-24 20:49       ` Matt Porter
2013-01-24 20:49         ` Matt Porter
2013-01-24 20:49         ` Matt Porter
2013-01-25  7:02         ` Santosh Shilimkar
2013-01-25  7:02           ` Santosh Shilimkar
2013-01-25  7:02           ` Santosh Shilimkar

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.