[RFC] SDMA support for i.MX
Sascha Hauer
s.hauer at pengutronix.de
Mon Aug 9 05:05:35 EDT 2010
Hi all,
Ever wondered what's hidden behind the tons of SDMA/iapi stuff in the
Freescale kernel? It's a nice and convenient to use DMA engine. The
following patches add support for it.
First of all a wrapper for the current i.MX DMA support is implemented
to allow the drivers to compile in DMA support without ifdefs. Then the
SDMA support itself is implemented and users are switched to support
the new DMA API.
The SDMA engine needs additional firmware support. Since fsl does
not use the standard request_firmware mechanism but compiles in the
firmware as static arrays, I had to invent a firmware layout.
You can get the program for generating the firmware images from
the static arrays here:
git://git.pengutronix.de/git/imx/sdma-firmware.git
As the layout of the firmware is not given by fsl but by me it should
be part of the review.
The SDMA code has currently been tested on i.MX31/35 with sound and
on i.MX31 with SD/MMC. i.MX25/51 are untested, but should work aswell.
Sascha
The following changes since commit fc1caf6eafb30ea185720e29f7f5eccca61ecd60:
Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 (2010-08-05 16:02:01 -0700)
are available in the git repository at:
git://git.pengutronix.de/git/imx/linux-2.6.git sdma
Sascha Hauer (8):
ARM i.MX dma: implement wrapper for dma functions
ARM i.MX dma-mx1-mx2: use wrapper
mxcmmc: use new dma api
ARM i.MX: add SDMA driver
ARM i.MX3: Add sdma device
ARM i.MX3: add dma request defines
ARM i.MX3: add dma request resources to ssi/sdhc devices
ASoC i.MX: switch to new DMA api
arch/arm/mach-imx/dma-v1.c | 142 +++-
arch/arm/mach-imx/include/mach/dma-mx1-mx2.h | 2 +-
arch/arm/mach-imx/include/mach/dma-v1.h | 8 +-
arch/arm/mach-mx3/Kconfig | 2 +
arch/arm/mach-mx3/clock-imx31.c | 4 +-
arch/arm/mach-mx3/clock-imx35.c | 2 +-
arch/arm/mach-mx3/devices.c | 80 ++
arch/arm/plat-mxc/Kconfig | 10 +
arch/arm/plat-mxc/Makefile | 3 +-
arch/arm/plat-mxc/dma.c | 112 +++
arch/arm/plat-mxc/include/mach/dma.h | 92 ++
arch/arm/plat-mxc/include/mach/mx31.h | 14 +
arch/arm/plat-mxc/include/mach/mx35.h | 26 +
arch/arm/plat-mxc/include/mach/mx3x.h | 29 +
arch/arm/plat-mxc/include/mach/sdma.h | 8 +
arch/arm/plat-mxc/sdma.c | 1181 ++++++++++++++++++++++++++
drivers/mmc/host/mxcmmc.c | 129 ++--
sound/soc/imx/Makefile | 2 -
sound/soc/imx/imx-pcm-dma-mx2.c | 177 ++---
sound/soc/imx/imx-ssi.c | 8 +-
20 files changed, 1826 insertions(+), 205 deletions(-)
create mode 100644 arch/arm/plat-mxc/dma.c
create mode 100644 arch/arm/plat-mxc/include/mach/dma.h
create mode 100644 arch/arm/plat-mxc/include/mach/sdma.h
create mode 100644 arch/arm/plat-mxc/sdma.c
More information about the linux-arm-kernel
mailing list